ASP.NET Web API 使用记录
WebAPI采用REST架构,用的是无状态的HTTP协议。
Web Service则是SOAP协议,比较重量级。
推荐阅读:Difference between WCF and Web API and WCF REST and Web Service
创建API
创建简单的API
1. 新建一个Web API文件,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http; namespace mvc5
{
public class MoviesValuesController : ApiController
{
// GET api/<controller>
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
} // GET api/<controller>/5
public string Get(int id)
{
return "value";
} // POST api/<controller>
public string Post([FromBody]string value)
{
return value;
} // PUT api/<controller>/5
public void Put(int id, [FromBody]string value)
{
} // DELETE api/<controller>/5
public void Delete(int id)
{
}
}
}
创建包含Entity Framework的API
1. 点击“工具”菜单->NuGet包管理器->管理解决方案的NuGet程序包,搜索entity,点击“安装”按钮。
2. 在Models目录下添加一个类:
namespace AirLiveServer.Models
{
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial; [Table("House")]
public partial class House
{
[Key]
public int ID { get; set; } [StringLength()]
public string User { get; set; } [StringLength()]
public string Contact { get; set; } [StringLength()]
public string Food { get; set; } [StringLength()]
public string Link { get; set; } [Column(TypeName = "datetime")]
public DateTime? Date { get; set; }
}
}
3. 在Controllers目录下添加一个控制器,选择
修改实体类后重建数据库
在nuget控制台输入:
Enable-Migrations
然后打开Migrations目录的configuation.cs,作出如下修改:
public Configuration()
{
AutomaticMigrationsEnabled = true;
}
然后在nuget控制台输入:
Update-Database -Force
测试API
新建一个HTML文件
<!DOCTYPE html>
<html>
<head>
<title>Web API</title>
<script src="jquery-2.0.3.min.js" type="text/javascript">
</script>
<script>
function post() {
$.ajax({ data: {
"": "小丸"
},
type: "post",
dataType: "json",
//指定输出类型为json格式
url: "http://localhost:52913/api/MoviesValues",
success: function(data) {
alert(data);
}
});
}
</script>
</head>
<body>
<form>
<input id="ajaxbtn" type="button" onclick="post()" value="ajax" />
</form>
</body>
</html>
在chrome浏览器的快捷方式后加上 --disable-web-security --user-data-dir=E:\MyChromerData ,打开HTML文件,点击按钮即可。
具体步骤 谷歌浏览器如何设置可以解决Ajax跨域问题_百度经验
将输出格式改为JSON字符串:
在Global.asax.cs的Application_Start中加入
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
ASP.NET Web API 使用记录的更多相关文章
- asp.net web api 的版本升级到 2.2的记录
asp.net web api 的版本 升级到 2.2的记录 asp.net web api 2.2相比1.0提升了不少 而且其中最重要的就是有了在线文档的自动字段注释的功能 再也不用写详细的字段说明 ...
- ASP.NET Web API 异常日志记录
如果在 ASP.NET MVC 应用程序中记录异常信息,我们只需要在 Global.asax 的 Application_Error 中添加代码就可以了,比如: public class MvcApp ...
- ASP.NET Web API 记录请求响应数据到日志的一个方法
原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...
- 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用
由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...
- ASP.NET Web API Model-ValueProvider
ASP.NET Web API Model-ValueProvider 前言 前面一篇讲解了Model元数据,Model元数据是在Model绑定中很重要的一部分,只是Model绑定中涉及的知识点比较多 ...
- ASP.NET Web API 接口执行时间监控
软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥.如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一. 在本文中,我将解释 ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】
最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto ...
- ASP.NET Web API 安全筛选器
原文:https://msdn.microsoft.com/zh-cn/magazine/dn781361.aspx 身份验证和授权是应用程序安全的基础.身份验证通过验证提供的凭据来确定用户身份,而授 ...
- ASP.NET Web API之消息[拦截]处理
标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录.废话少说,直接开始. Exception 当服务端抛出未处理异常时,most exceptions ...
随机推荐
- 转载 在.net中使用GAC
转载出处 https://blog.log4d.com/2011/01/gac/ GAC GAC是什么?是用来干嘛的?GAC的全称叫做全局程序集缓存,通俗的理解就是存放各种.net平台下面需要使用的d ...
- Ios学习
http://www.cnblogs.com/superhappy/archive/2013/04/23/3038493.html http://www.360doc.com/content/14/0 ...
- sql2008_x64 读取excel
sql2008_x64 读取excel 下载64bit 版的AccessDatabaseEngine_x64:http://www.microsoft.com/en-us/download/detai ...
- 流弊博客集锦(updating)
1.http://ifeve.com/ 2.淘宝的 code project http://code.taobao.org/ http://blog.csdn.net/tenfyguo/article ...
- 转载:iPhone 6 Plus 屏幕宽度问题 375 vs 414
首先看一张比较简单明了的 iPhone 6 与 iPhone 6 Plus 对比图,来自 PaintCode 的<The Ultimate Guide To iPhone Resolutions ...
- android学习日记03--常用控件checkbox/radiobutton
常用控件3.checkbox 复选框,确定是否勾选,点击一下勾选,点击第二下取消,当有一系列备选项时适合用checkbox控件,方便用户提交数据. 贴上例子Activity的java代码 packag ...
- careercup-C和C++ 13.10
13.10 用C编写一个my2DALLoc函数,可分配二维数组.将malloc函数的调用次数降到最少,并确保可通过arr[i][j]访问该内存. 解法: 这道题目最简单的方法就是先开一个数组来存储指向 ...
- [008]C---gcc环境下的一个编译器版本问题
最开始纯粹为了好玩,写了这样一段程序: ; i < ; i++); 然后欢乐的运行: gcc practise.c -o practise 我擦咧,出现了这个: practise.c:: err ...
- 四、IP地址转换
IP地址与端口 TCP/IP(传输控制协议/网际协议)不是一个协议,而是一组协议的总称,包括IP.TCP.UDP.ICMP.ARP等.它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据 ...
- Tomcat启动报错org.apache.coyote.AbstractProtocol.init Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]”
1.使用netstat查看端口8080的使用情况: netstat -ano | findstr 8080 结果为: 最后一列表示使用8080端口的进程PID,如果返回结果为空则说明没有被使用. 2. ...