Web APi入门之基本操作(一)

摘要:
最近我了解了WebApi。WebApi是RESTful样式,操作根据请求模式确定。它是以博客的形式写的,以加深印象,并便于以后的复习和复习。

最近学习了下WebApi,WebApi是RESTful风格,根据请求方式决定操作。以博客的形式写出来,加深印象以及方便以后查看和复习。

1、首先我们使用VS创建一个空的WebApi项目

Web APi入门之基本操作(一)第1张

2、新建实体以及控制器类

1     public classProduct
2 {
3         public int Id { set; get; }
4         public string Name { set; get; }
5         public string Description { set; get; }
6     }
1     public classHomeController : ApiController
2 {
3         static List<Product> modelList = new List<Product>()
4 {
5             new Product(){Id=1,Name="电脑",Description="电器"},
6             new Product(){Id=2,Name="冰箱",Description="电器"},
7 };
8 
9         //获取所有数据
10 [HttpGet]
11         public List<Product>GetAll()
12 {
13             returnmodelList;
14 }
15 
16         //获取一条数据
17 [HttpGet]
18         public Product GetOne(intid)
19 {
20             return modelList.FirstOrDefault(p => p.Id ==id);
21 }
22 
23         //新增
24 [HttpPost]
25         public boolPostNew(Product model)
26 {
27 modelList.Add(model);
28             return true;
29 }
30 
31         //删除
32 [HttpDelete]
33         public bool Delete(intid)
34 {
35             return modelList.Remove(modelList.Find(p => p.Id ==id));
36 }
37 
38         //更新
39 [HttpPut]
40         public boolPutOne(Product model)
41 {
42             Product editModel = modelList.Find(p => p.Id ==model.Id);
43             editModel.Name =model.Name;
44             editModel.Description =model.Description;
45             return true;
46 }
47     }

3、新建html页面使用ajax操作

1 <!DOCTYPE html>
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4     <meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
5     <title>Demo</title>
6     <script src="/Scripts/jquery-1.10.2.js"></script>
7     <script type="text/javascript">
8 $(function() {
9 add();
10 update();
11 find();
12 remove();
13 getAll();
14 });
15         functiongetAll() {
16 $.ajax({
17 url: "api/Home/",
18 type: 'GET',
19 success: function(data) {
20 console.log(data);
21 }
22 });
23 }
24 
25         functionfind() {
26 $.ajax({
27 url: "api/Home/1",
28 type: 'GET',
29 success: function(data) {
30 console.log(data);
31 }
32 });
33 }
34 
35         functionadd() {
36 $.ajax({
37 url: "api/Home/",
38 type: "POST",
39 data: { "Id": "3", "Name": "电磁炉", "Description": "电器"},
40 success: function(data) {
41 console.log(data);
42 }
43 });
44 
45 }
46 
47         functionupdate() {
48 $.ajax({
49 url: "api/Home/",
50 type: 'PUT',
51 data: { "id": "1", "Name": "洗衣机", "Description": "家具"},
52 success: function(data) {
53 console.log(data);
54 }
55 });
56 }
57 
58         functionremove() {
59 $.ajax({
60 url: "api/Home/1",
61 type: 'DELETE',
62 success: function(data) {
63 console.log(data);
64 }
65 });
66 }
67     </script>
68 </head>
69 <body>
70     <h1>WebApi基本操作</h1>
71 </body>
72 </html>

4、通过开发人员工具可以看到如下

Web APi入门之基本操作(一)第2张

Web APi入门之基本操作(一)第3张

WebApi默认是以XML格式返回,但是一般我们需要返回Json,通过在Global.asax里的Application_Start方法中加上如下代码可以移除XML,让其只返回Json

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();

有一个需要注意的是,如果在参数写的是实体类,那么需要加上相应的特性(post、put请求不需要),如下

1 [HttpGet]
2         publicUser Get([FromUri]User user)
3 {
4             returnuser;
5 }

免责声明:文章转载自《Web APi入门之基本操作(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.NET 数据类型之动态类型(Dynamic)xshell6免费版破除四个窗口限制下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微信小程序之base64图片如何预览与一键保存到本地相册?

需求:由于后台服务器各方面的限制,现在服务器返回的图片是base64格式的,小程序端需要支持预览图片和多个图片一键下载功能 一、如何预览base64位图片? WXML页面:item.src的值是base64编码的字符串 <block wx:for="{{imgsLength}}" wx:key="index"> <image...

Oracle中的BLOB和CLOB【转载】

原文地址:http://jelly.iteye.com/blog/65796 一、区别和定义       LONG: 可变长的字符串数据,最长2G,LONG具有VARCHAR2列的特性,可以存储长文本一个表中最多一个LONG列   LONG RAW: 可变长二进制数据,最长2G  CLOB:  字符大对象Clob 用来存储单字节的字符数据   NCLOB:...

YOLOv3:训练自己的数据(附优化与问题总结)

环境说明 系统:ubuntu16.04 显卡:Tesla k80 12G显存 python环境: 2.7 && 3.6 前提条件:cuda9.0 cudnn7.0 opencv3.4.0 安装cuda和cudnn教程 安装opencv3.4.0教程 实现YOLOV3的demo 首先安装darknet框架,官网链接 git c...

WebService与CXF

一:Webservice  1:WebService是干什么的?有什么用? 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用规范。 比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率 从表面上看,W...

详解S7源码3-COTP and TPKT

连接 S7COMM简介 https://www.anquanke.com/post/id/186099 OSI layer    Protocol Application Layer    S7 communication Presentation Layer    S7 communication(COTP) Session Layer    S7 co...

使用数据字典layui搜索框三联动

/** * 自定义的搜索初始化插件 * 说明: * 给需要异步加载数据字典的加上自定义属性jq-search="qu" * qu为数据字典对应的key * 如果需要级联查询的则加上自定义属性lay-filter, * 如果没有下一级或者子集则不需要加 * 三联动第一个lay-filter设成1,第三个设成3,代码中有判定 * echo用于放...