什么是Web API

谈谈REST与ASP.NET Web API

怎样理解 REST、RESTful

关于什么是 Web API seaconch 也就不再这里多说了

web api 是一个 面向资源(ROA) 通过 HTTP协议动词来修改资源状态的可自我寄宿(SelfHost)的接口

今天 seaconch 的主要目的是实现一个简单的 ASP.NET Web API 栗子

新建一个 ASP.NET Web API 项目

1.新建项目

2.选择 Web API

3.新建 Person 类

Person类:

    /// <summary>/// 人/// </summary>public class Person{public int ID { get; set; }public string Name { get; set; }public int Sex { get; set; }public int Age { get; set; }}

4.新建 Person_Context 类

Person_Context 类:

using System.Collections.Generic;namespace chestnut_webapi.Models
{public class Person_Context : System.Data.Entity.DbContext{public Person_Context(): base("name=sc_db"){ }public System.Data.Entity.DbSet<Person> Persons { get; set; }protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder){modelBuilder.Conventions.Remove<System.Data.Entity.ModelConfiguration.Conventions.PluralizingTableNameConvention>();}}public class Db_Initer : System.Data.Entity.DropCreateDatabaseAlways<Person_Context>{protected override void Seed(Person_Context context){context.Persons.Add(new Person(){Name = "毛毛",Age = 13,Sex = 1});context.Persons.Add(new Person(){Name = "团团",Age = 12,Sex = 2});base.Seed(context);}}
}

5.配置连接字符串

6.配置 EF 初始数据

对 Person 的 Get 请求

1.新建Controller

右键 Controllers 新建一个空的 API

2.GET:

    public class PersonController : ApiController{Models.Person_Context person_db = new Models.Person_Context();public List<Models.Person> Get(){return person_db.Persons.ToList();}}

3.调用API

这里我们用小程序来测试效果

对 Person 的 POST 请求

1.Post

这里我们在 Post API 中,添加了一个新的 Person -> 布布

        public List<Models.Person> Post(){Models.Person p = new Models.Person(){ID = 1,Name = "布布",Age = 5,Sex = 1};person_db.Persons.Add(p);person_db.SaveChanges();return person_db.Persons.ToList();}

2.小程序代码

相信有心的同学已经发现了,小程序中我们只修改了method 由 GET -> POST

对 Person 的 PUT 请求

1.PUT

        public List<Models.Person> Put(){Models.Person person = person_db.Persons.Where(p => p.Name == "团团").ToList().Single();person.Name = "圆圆";person_db.SaveChanges();return person_db.Persons.ToList();}

2.小程序代码

结尾

至此,一个简单的对 Person 进行 HTTP GET / POST / PUT 操作的 ASP.NET Web API 已经呈现在了大家面前

过程中我们也可以看到,为什么说 ASP.NET Web API 是 ROA ?你也可以看到对于微信小程序而言,她仅仅是修改了请求 method,那么就实现了对 Person 这个资源的不同操作

然而我们并没有开放对于 Person 资源的 DELETE 请求方式,那么相应的我们就等于并没有对外开放 Person 的删除方式

好了,今天就到这啦,相信大家对于 ASP.NET Web API 也有了一个初步的认识

晚安

C# 如何理解 ASP.NET Web API 的 REST相关推荐

  1. ASP.NET Web API 路由对象介绍

    前言 在ASP.NET.ASP.NET MVC和ASP.NET Web API这些框架中都会发现有路由的身影,它们的原理都差不多,只不过在不同的环境下作了一些微小的修改,这也是根据每个框架的特性来制定 ...

  2. ASP.NET Web API 过滤器创建、执行过程(二)

    ASP.NET Web API 过滤器创建.执行过程(二) 前言 前面一篇中讲解了过滤器执行之前的创建,通过实现IFilterProvider注册到当前的HttpConfiguration里的服务容器 ...

  3. ASP.NET Web API Model-ModelBinder

    ASP.NET Web API Model-ModelBinder 前言 本篇中会为大家介绍在ASP.NET Web API中ModelBinder的绑定原理以及涉及到的一些对象模型,还有简单的Mod ...

  4. Asp.Net Web API 2第一课——入门

    前言 Http不仅仅服务于Web Pages.它也是一个创建展示服务和数据的API的强大平台.Http是简单的.灵活的.无处不在的.你能想象到几乎任何的平台都会有HTTP服务库.HTTP服务可以涉及到 ...

  5. 通过微软的cors类库,让ASP.NET Web API 支持 CORS

    前言:因为公司项目需要搭建一个Web API 的后端,用来传输一些数据以及文件,之前有听过Web API的相关说明,但是真正实现的时候,感觉还是需要挺多知识的,正好今天有空,整理一下这周关于解决COR ...

  6. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session

    原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session chsakell分享了前端使用AngularJS,后端使用ASP.NE ...

  7. 我所理解的RESTful Web API [设计篇]

    <我所理解的RESTful Web API [Web标准篇]>Web服务已经成为了异质系统之间的互联与集成的主要手段,在过去一段不短的时间里,Web服务几乎清一水地采用SOAP来构建.构建 ...

  8. 购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证

    原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证 chsakell分享了前端使用AngularJS,后端使用ASP. ...

  9. 监控系统简介(二):使用 App Metrics 在 ASP.NET Web API 中记录指标

    回顾 在<监控系统简介:使用 Prometheus 与 Grafana>一文中,我们了解了什么是监控系统,Prometheus 这一监控工具及它提供的数据类型.PromQL 以及 Graf ...

最新文章

  1. 将近400篇原创后,有三AI喊你正式加入来不来?
  2. AWS SDK for Java 2.0 使用的基础入门
  3. 【推荐】一款快速预览神器:QuickLook
  4. hibernate之缓存
  5. oracle关闭 manager,Oracle Enterprise Manager 11g 启停
  6. 【theano-windows】学习笔记十七——梯度中的consider_constant
  7. 【Ogre-windows】环境配置
  8. 【渝粤题库】国家开放大学2021春2108刑法学(2)题目
  9. 三维模型转换html,一种三维网格模型视图转换方法与流程
  10. PYTORCH 定义模型
  11. java.toString(),(String),String.valueOf的区别
  12. 如何发挥思维导图真正的杀伤力?
  13. java 货币格式 转换_java格式化数值成货币格式示例
  14. 查看 IntelliJ IDEA 符号在插入符号上的定义
  15. hmm进行英文词性标注
  16. 如何利用家庭闲置宽带赚钱,甜糖 x86 docker 从零开始搭建
  17. php7.4 ffi,PHP7.4 全新扩展方式 FFI 详解
  18. EasyRecovery2023重新找回丢失的文件数据恢复软件
  19. 制作DeepLabV3Plus训练集
  20. 【100%通过率】华为OD机试真题 C++ 实现【最接近最大输出功率的设备 /查找充电设备组合】

热门文章

  1. Android移动APP开发笔记——Cordova(PhoneGap)通过CordovaPlugin插件调用 Activity 实例...
  2. Linux SSH免密码登录
  3. 地图分幅组件的实现(一) ——图号和经纬度转换组件
  4. windows sdk 学习笔记(8)
  5. 未来五年,谁将挑战德国太阳能擂主
  6. 介绍struct bus_type非常好的
  7. 条件编译#define、#undef、#if、#elif、#elif defined、#elif !defined 、#endif用法
  8. Spatial Transformer Networks
  9. Java的接口及实例(转)
  10. 在vivado hls软件上打开zynqnet工程,Vivado HLS Command Prompt(Vivado HLS 命令提示符)是什么