所在的位置: Web开发 >> HTNL >> 使用VisualStudioCode

使用VisualStudioCode

在上一篇里,我已经建立了一个简单的Web-Demo应用程序。这一篇将记录将此Demo程序改造成一个WebApi应用程序。

一、添加ASP.NETCoreMVC包

1.在project.json文件添加Microsoft.AspNetCore.Mvc包

{

version:1.0.0-*,

buildOptions:{

debugType:portable,

emitEntryPoint:true

},

dependencies:{

Microsoft.NETCore.App:{

type:platform,

version:1.0.0

},

Microsoft.AspNetCore.Server.Kestrel:1.0.0,

Microsoft.AspNetCore.Mvc:1.0.0

},

frameworks:{

netcoreapp1.0:{

imports:dnxcore50

}

}

}

2.在cmd窗口使用dotnetrestore将新添加的包还原至本地

二、修改Startup.cs文件内容,添加ASP.NETMvc能力

usingMicrosoft.AspNetCore.Builder;

usingMicrosoft.Extensions.DependencyInjection;

namespaceWebApiFrame

{

publicclassStartup

{

publicvoidConfigureServices(IServiceCollectionservices)

{

//注入MVC框架

services.AddMvc();

}

publicvoidConfigure(IApplicationBuilderapp)

{

//添加MVC中间件

app.UseMvc();

}

}

}

三、新建Controller,编写WebApi方法

1.控制器UsersController

usingSystem;

usingMicrosoft.AspNetCore.Mvc;

usingWebApiFrame.Models;

namespaceWebApiFrame.Controller

{

[Route(api/[controller])]

publicclassUsersController:Microsoft.AspNetCore.Mvc.Controller

{

[HTTPGet({id})]

publicIActionResultGet(intid)

{

varuser=newUser(){Id=id,Name=Name:+id,Sex=Male};

returnnewObjectResult(user);

}

[HTTPPost]

publicIActionResultPost([FromBody]Useruser){

if(user==null){

returnBadRequest();

}

//TODO:新增操作

user.Id=newRandom().Next(1,10);

returnCreatedAtAction(Get,new{id=user.Id},user);

}

[HTTPPut({id})]

publicIActionResultPut(intid,[FromBody]Useruser){

if(user==null){

returnBadRequest();

}

//TODO:更新操作

returnnewNoContentResult();

}

[HTTPDelete({id})]

publicvoidDelete(intid){

//TODO:删除操作

}

}

}

不同于之前的ASP.NETMVC版本,ASP.NETCoreMVC里实现WebApi的控制器都继承自唯一的一个基类Controller。

2.模型User.cs

namespaceWebApiFrame.Models

{

publicclassUser

{

publicintId{get;set;}

publicstringName{get;set;}

publicstringSex{get;set;}

}

}

最终文件夹结构如下图

四、启动调试,使用Fiddler工具调试WebApi接口

1.GETRequest

GETResponse

2.POSTRequest

POSTResponse

POST响应码为,表示资源创建成功。

在响应头里有一个Location属性,这是一个导航属性,属性值是一个url地址,直接指向了刚刚Post成功的资源地址。

3.PUTRequest

PUTResponse

PUT为更新操作。按照规范,当服务更新操作执行成功后,直接通过响应码告诉客户端调用成功,默认没有响应body。

4.DELETERequest

DELETEResponse

DELETE为删除操作。按照规范,需要通过响应码判断是否成功()还是失败(),默认没有响应body。

原文


转载请注明:http://www.guyukameng.com/html/html1/12811.html