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 使用记录的更多相关文章

  1. asp.net web api 的版本升级到 2.2的记录

    asp.net web api 的版本 升级到 2.2的记录 asp.net web api 2.2相比1.0提升了不少 而且其中最重要的就是有了在线文档的自动字段注释的功能 再也不用写详细的字段说明 ...

  2. ASP.NET Web API 异常日志记录

    如果在 ASP.NET MVC 应用程序中记录异常信息,我们只需要在 Global.asax 的 Application_Error 中添加代码就可以了,比如: public class MvcApp ...

  3. ASP.NET Web API 记录请求响应数据到日志的一个方法

    原文:http://blog.bossma.cn/dotnet/asp-net-web-api-log-request-response/ ASP.NET Web API 记录请求响应数据到日志的一个 ...

  4. 在一个空ASP.NET Web项目上创建一个ASP.NET Web API 2.0应用

    由于ASP.NET Web API具有与ASP.NET MVC类似的编程方式,再加上目前市面上专门介绍ASP.NET Web API 的书籍少之又少(我们看到的相关内容往往是某本介绍ASP.NET M ...

  5. ASP.NET Web API Model-ValueProvider

    ASP.NET Web API Model-ValueProvider 前言 前面一篇讲解了Model元数据,Model元数据是在Model绑定中很重要的一部分,只是Model绑定中涉及的知识点比较多 ...

  6. ASP.NET Web API 接口执行时间监控

    软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥.如何快速有效地找到软件产品的性能瓶颈,则是我们感兴趣的内容之一. 在本文中,我将解释 ...

  7. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【开篇】【持续更新中。。。】

    最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto ...

  8. ASP.NET Web API 安全筛选器

    原文:https://msdn.microsoft.com/zh-cn/magazine/dn781361.aspx 身份验证和授权是应用程序安全的基础.身份验证通过验证提供的凭据来确定用户身份,而授 ...

  9. ASP.NET Web API之消息[拦截]处理

    标题相当难取,内容也许和您想的不一样,而且网上已经有很多这方面的资料了,我不过是在实践过程中作下记录.废话少说,直接开始. Exception 当服务端抛出未处理异常时,most exceptions ...

随机推荐

  1. ASP.NET购物车实现方法

    1.可以参考PetShop中的购物车实现方法 2.[经典示例分享]— 商城购物车设计(VS+Access)附源码 http://www.cnblogs.com/wenyang-rio/archive/ ...

  2. [转]SpringMVC日期类型转换问题三大处理方法归纳

    http://blog.csdn.net/chenleixing/article/details/45190371 前言 我们在SpringMVC开发中,可能遇到比较多的问题就是前台与后台实体类之间日 ...

  3. C++ 构造过程和析构过程

    1.C++构造和析构的过程,类似于穿衣脱衣的过程.穿衣是:先穿内衣,再穿外套.脱衣是:先脱外套,再脱内衣.C++构造过程:首先调用父类构造方法,再调用子类构造方法.C++析构过程:首先调用子类析构方法 ...

  4. JavaScript toFixed() 方法

    定义和用法toFixed() 方法可把 Number 四舍五入为指定小数位数的数字. 语法NumberObject.toFixed(num) 参数 描述num 必需.规定小数的位数,是 0 ~ 20 ...

  5. Mac Pro更换SSD后,在Win7下启用ACHI的方法AHCI

    在Mac Pro下更换SSD后,如果安装Win7,要将SSD改为AHCI模式是非常麻烦的.本文介绍如何将Mac的Win7下的SSD改为AHCI方式驱动,及几种常见问题的处理. 一.当Lion与Win7 ...

  6. [MODx] 8. Snippet get data, chunk display

    Simple Example: Lets process this chunk and output its value. We have this Chunk, called "Welco ...

  7. android学习日记24--Android 菜单开发

    菜单是任何应用程序必不可少的一项.按下Menu键或者长按某个View就会弹出相应菜单,当然前提是应用程序有实现菜单功能. Android平台下的菜单有:Options Menu(选项菜单).Subme ...

  8. Linux中的终端、控制台、tty、pty等概念

    参考:http://news.newhua.com/news1/program_language/2010/623/10623141048745773199BCF0CFH6AKB9930IGCFKHB ...

  9. 隐式Intent实例

    注意:The <strong>categories</strong>, if supplied, must <em>all</em> be listed ...

  10. CCCatmullRomTo&CCCatmullRomBy

    注: 云形线(Catmull-Rom curve曲线) 云线(Spline或B-spline)在数学上有很多种类,常用的三阶云线有Hermite, Bezier, Uniform B-spline, ...