ASP.NET MVC WEB API必知必会知识点总结

简介:

 一、理解WEB API:提供基于RESTful架构的WEB服务,通过HTTP请求方法(GET, PUT, POST, DELETE)映射到服务器端相应的ACTION方法(CRUD)。

RESTful架构:

(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。


HTTP 的四个主要方法 (GET, PUT, POST, DELETE) 按照下列方式映射为 CURD 操作:

GET 用于获取 URI 资源的进行展示, GET 操作不应对服务端有任何影响; 

PUT 用于更新 URI 上的一个资源, 如果服务端允许, PUT 也可以用于新建一个资源; 
POST 用于新建 资源, 服务端在指定的 URI 上创建一个新的对象, 将新资源的地址作为响应消息的一部分返回; 
DELETE 用于删除指定的 URI 资源。

二、WEB API特点:

1.CONTROL类继承自ApiController抽象类;

2.注册路由时一般无需指定ACTION节点,ACTION方法名称一般都包含HTTP请求方法名名称,路由系统通过HTTP请求方法自动寻找与之相应的ACTION方法并执行;

3.ACTION方法返回值一般为:JSON、XML或一般值对象

三、实现发送GET, PUT, POST, DELETE HTTP请求方法

1.通过JQUERY.AJAX方法指定TYPE类型来实现GET, PUT, POST, DELETE HTTP请求方法; 

2.直接访问URL或将表单的METHOD方法设为GET,则可实现GET  HTTP请求方法;

3.将表单的METHOD方法设为POST,则可实现POST  HTTP请求方法;

4.PUT、DELETE除第一种方法外,只能通过先在服务端重写HTTP请求方法(自定义HttpMessageHandler来实现),然后再在客户端请求报文头指定“X-HTTP-Method-Override

”值为PUT或DELETE来实现;具体实现方法详见:如果调用ASP.NET Web API不能发送PUT/DELETE请求怎么办? 

5.在注册WEB API路由规则时指定ACTION节点;

 四、WEB API请求与服务端处理实现方法:

1.GET ALL方法:

客户端:

1
2
3
4
5
6
7
8
9
10
$( "#Button1" ).click( function  () {
                $.getJSON( "@Url.Content(" ~/api/values ")" function  (data) {
                    var  rs =  "" ;
                    $.each(data,  function  () {
                        rs +=  this  "," ;
                    })
                    alert(data);
                    showResult(rs);
                })
    });

服务器端:

1
2
3
4
5
// GET api/values
public IEnumerable<string> Get()
{
     return  new  string[] {  "value1" "value2"  };
}

2.GET ONE方法:

客户端:

1
2
3
4
5
6
$( "#Button2" ).click( function  () {
     $.getJSON( "@Url.Content(" ~/api/values/5 ")" function  (data) {
         alert(data);
         showResult(data);
     })
});

服务器端:

1
2
3
4
5
// GET api/values/5
public string Get(int id)
{
     return  "value is "  + id.ToString();
}

3.POST CREATE方法:(注意以下客户端中的第几种方法就对应服务器端的第几种方法)

客户端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//第一种:
$( "#Button1" ).click( function  () {
                 $.post( "@Url.Content(" ~/api/values ")" , {name: 'zwj' ,age:29}, function  (data) {
                     alert(data);
                     showResult(data);
                 })
             });
 
//第二种:
  $( "#Button3" ).click( function  () {
                 $.ajax( "@Url.Content(" ~/api/values/1 ")" , {
                     type: 'post' ,
                     data:JSON.stringify({ name:  'zwj' , age: 29 }),
                     contentType:  'application/json' ,
                     //dataType: 'json',
                     success:  function  (result, status, xhr) {
                         alert(result);
                         showResult(result);
                     }
                 })
             });

服务器端:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//第一种方法:       
public  string  Post()
         {
             string  s =  "" ;
             HttpContextBase context = (HttpContextBase)Request.Properties[ "MS_HttpContext" ]; //获取传统context    
             HttpRequestBase request = context.Request; //定义传统request对象
 
             for  ( int  i = 0; i < request.Form.Keys.Count; i++)
             {
                 s +=  string .Format( "{0}={1}<br/>" , request.Form.Keys[i], request.Form[i]);
             }
                 return  "Post values:"  + s;
         }
 
//第二种方法:
         public  string  Post([FromBody]Person p)
         {
             return  string .Format( "Put values:name:{0},age:{1}"  + p.Name,p.Age);
         }

4.PUT UPDATE方法:

 客户端方法与POST方法相同,只是TYPE指定为:PUT;

 服务器端与POST方法相同;

5.DELETE 方法:

 客户端方法与GET方法相同,只是TYPE指定为:DELETE;

 服务器端与GET方法相同;

也参见这篇文章:ASP.NET MVC学习系列(二)-WebAPI请求 

本文转自 梦在旅途 博客园博客,原文链接: http://www.cnblogs.com/zuowj/p/4769315.html ,如需转载请自行联系原作者

相关文章
|
开发框架 前端开发 JavaScript
ASP.NET Web Pages - 教程
ASP.NET Web Pages 是一种用于创建动态网页的开发模式,采用HTML、CSS、JavaScript 和服务器脚本。本教程聚焦于Web Pages,介绍如何使用Razor语法结合服务器端代码与前端技术,以及利用WebMatrix工具进行开发。适合初学者入门ASP.NET。
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
711 35
|
JSON 编解码 API
Go语言网络编程:使用 net/http 构建 RESTful API
本章介绍如何使用 Go 语言的 `net/http` 标准库构建 RESTful API。内容涵盖 RESTful API 的基本概念及规范,包括 GET、POST、PUT 和 DELETE 方法的实现。通过定义用户数据结构和模拟数据库,逐步实现获取用户列表、创建用户、更新用户、删除用户的 HTTP 路由处理函数。同时提供辅助函数用于路径参数解析,并展示如何设置路由器启动服务。最后通过 curl 或 Postman 测试接口功能。章节总结了路由分发、JSON 编解码、方法区分、并发安全管理和路径参数解析等关键点,为更复杂需求推荐第三方框架如 Gin、Echo 和 Chi。
|
自然语言处理 算法 API
阿里云增值税发票识别NET Rest API调用示例
本文介绍了使用NET代码调用阿里云增值税发票识别API的实现方式。通过示例代码,详细展示了如何构造请求、设置签名以及发送HTTP请求的具体步骤。代码中涵盖了请求参数的处理、签名生成逻辑(如HMAC-SHA256算法)以及调用API后的结果处理。此外,还提供了运行结果的截图和参考文档链接,帮助开发者更好地理解和应用该接口。
1425 4
|
人工智能 前端开发 API
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
Gemini Coder 是一款基于 Google Gemini API 的 AI 应用生成工具,支持通过文本描述快速生成代码,并提供实时代码编辑和预览功能,简化开发流程。
1335 38
Gemini Coder:基于 Google Gemini API 的开源 Web 应用生成工具,支持实时编辑和预览
|
人工智能 搜索推荐 IDE
突破网页数据集获取难题:Web Unlocker API 助力 AI 训练与微调数据集全方位解决方案
本文介绍了Web Unlocker API、Web-Scraper和SERP API三大工具,助力解决AI训练与微调数据集获取难题。Web Unlocker API通过智能代理和CAPTCHA绕过技术,高效解锁高防护网站数据;Web-Scraper支持动态内容加载,精准抓取复杂网页信息;SERP API专注搜索引擎结果页数据抓取,适用于SEO分析与市场研究。这些工具大幅降低数据获取成本,提供合规保障,特别适合中小企业使用。粉丝专属体验入口提供2刀额度,助您轻松上手!
916 2
|
XML JSON API
Understanding RESTful API and Web Services: Key Differences and Use Cases
在现代软件开发中,RESTful API和Web服务均用于实现系统间通信,但各有特点。RESTful API遵循REST原则,主要使用HTTP/HTTPS协议,数据格式多为JSON或XML,适用于无状态通信;而Web服务包括SOAP和REST,常用于基于网络的API,采用标准化方法如WSDL或OpenAPI。理解两者区别有助于选择适合应用需求的解决方案,构建高效、可扩展的应用程序。
|
运维 前端开发 C#
一套以用户体验出发的.NET8 Web开源框架
一套以用户体验出发的.NET8 Web开源框架
516 7
一套以用户体验出发的.NET8 Web开源框架
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
389 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙