使用的工具是VS2015
1.打开vs,新建一个ASP.NET Web 应用程序,命名为WebApiTest,
选择empty,然后为项目添加Web Api模块
创建后项目目录如下
这里简单说下各个目录:
首先 App_Start :这个目录存放的是项目启动时的一些相关设置,
在新建一个WebApi时会自动在WebApiConfig.cs文件里面生成一个默认路由,配置路由主要是Register()方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace WebApiTest
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API 配置和服务
// Web API 路由
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.Clear();
// config.Formatters.Add(new JsonMd)
}
}
}
简答说一下这个方法里面的这些参数:
name:"DefaultApi",表示路由的名称,保证不出现重复路由名就可以了;
routeTemplate: "api/{controller}/{id}",表示路由url的匹配规则,“api”是固定部分,主要用来标识当前请求的url是一个api服务的接口,区别MVC的路由,当然,这里并不是一定要写成“api”,如果你改成“apiserver”,那么你请求的url里面也需要写成“apiserver”;“{controller}”是控制器的占位符部分,在真实的url里面,该部分对应的是具体的控制器的名称,这个和MVC里面一致;“{id}”是参数的占位符部分,表示参数,一般这个参数都会在default里面设置可选。有了这个路由模板约束请求的url,比如:我们请求的url写成http://localhost:21528/query,那么肯定是找不到对应的路由的,因为“api”这个参数必选。如果请求的url匹配不到对应的路由,则会向客户端返回一个404的状态码。
defaults: new { id = RouteParameter.Optional },表示路由的默认值,比如上面的参数routeTemplate,{controller}和{id}部分都可以设置默认值,比如:defaults改成new { controller="Order", id = RouteParameter.Optional },那么我们请求http://localhost:21528/api这个url仍然能访问到方法。
2.和MVC一样,拿到一个url时我们需要去controller里面找到对应的action
在controller目录下新建一个TestController.cs,这里的命名规则和MVC一样,需要以Controller为后缀
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
namespace WebApiTest.Controllers
{
public class TestController : ApiController
{
public string GetAll()
{
return "success";
}
}
}
这里我们创建了一个GetAll方法,对应的action就是方法名
启动项目,输入urllocalhost:端口号/api/Test/就能够访问了
3.将项目发布
右键点击项目,点击发布