打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ASP.NET Core WebAPI 学习笔记(2): Web API Demo


来源:星辰.Lee

链接:cnblogs.com/niklai/p/5658876.html


一、添加ASP.NET Core MVC包


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窗口使用 dotnet restore 将新添加的包还原至本地

 

二、修改Startup.cs文件内容,添加Asp.Net Mvc能力


using Microsoft.AspNetCore.Builder;

using Microsoft.Extensions.DependencyInjection;

namespace WebApiFrame

{

    public class Startup

    {

        public void ConfigureServices(IServiceCollection services)

        {

            // 注入MVC框架

            services.AddMvc();

        }

        public void Configure(IApplicationBuilder app)

        {

            // 添加MVC中间件

            app.UseMvc();

        }

    }

}


三、新建Controller,编写Web Api方法


1. 控制器UsersController


using System;

using Microsoft.AspNetCore.Mvc;

using WebApiFrame.Models;

namespace WebApiFrame.Controller

{

    [Route('api/[controller]')]

    public class UsersController : Microsoft.AspNetCore.Mvc.Controller

    {

        [HttpGet('{id}')]

        public IActionResult Get(int id)

        {

            var user = new User() { Id = id, Name = 'Name:' + id, Sex = 'Male' };

            return new ObjectResult(user);

        }

        [HttpPost]

        public IActionResult Post([FromBody] User user){

            if(user == null){

                return BadRequest();

            }

            // TODO:新增操作

            user.Id = new Random().Next(1, 10);

            return CreatedAtAction('Get', new { id = user.Id }, user);

        }

        [HttpPut('{id}')]

        public IActionResult Put(int id, [FromBody] User user){

            if(user == null){

                return BadRequest();

            }

            // TODO: 更新操作

            return new NoContentResult();

        }


        [HttpDelete('{id}')]

        public void Delete(int id){

        // TODO: 删除操作    

        }

    }

}


不同于之前的ASP.NET MVC版本,ASP.NET Core MVC里实现Web Api的控制器都继承自唯一的一个基类Controller。


2. 模型User.cs


namespace WebApiFrame.Models

{

    public class User

    {

        public int Id { get; set; }

        public string Name { get; set; }

        public string Sex { get; set; }

    }

}


最终文件夹结构如下图


 

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


1. GET Request



GET Response



2. POST Request



POST Response



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


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


3. PUT Request



PUT Response



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


4. DELETE Request



DELETE Response



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


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(五)
.NET Core 学习资料精选:入门
在Asp.Net Core中使用ModelConvention实现全局过滤器隔离
ASP.NET Core MVC 从入门到精通之Filter
ASP.NET Core 5.0 Web API 自动集成Swashbuckle
ASP.NET Core3基础:01. 示例项目搭建与启动顺序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服