ASP。NET Web API教程
什么是Web API?
谁使用API?
ASP。NET Web API
ASP。NET Web API特性
基于rest的服务
REST API原理
REST API的方法
实现REST API简单应用程序
Web API的需求
MVC vs. Web API
Web API vs. WCF
Web API与Web服务
Web API安全
ASP。NET Web API教程提供ASP.NET的基本和高级概念。我们的ASP。NET教程是专为初学者和专业人士。 什么是Web API?
- Web API是Web应用程序的增强形式,用于在不同设备(如笔记本电脑、移动设备和其他设备)上提供服务。
- 今天,各种各样的企业使用互联网作为一种具有成本效益的方式来扩大他们在国际市场上的业务。
- Web应用程序有助于在互联网上交换信息,也有助于在网站上进行安全交易。
- Web应用程序很受欢迎,因为Web浏览器是在默认的,我们不需要在装有操作系统的电脑上安装任何软件。
- 例如,Facebook(一个社交网络web应用程序),Flickr(一个照片共享web应用程序),维基百科是一个主要使用的web应用程序的例子。
- 从技术上讲,web应用程序由两种类型的脚本组成:
1)客户端脚本:JavaScript、HTML和其他客户端脚本语言用于设计web表单,以便向用户显示信息。 2)服务器端脚本:ASP和其他服务器端脚本语言用于执行业务逻辑和数据库相关的操作,如存储和检索信息。
- web应用程序是人类系统交互.
- 它可以是为某些业务提供信息的单页应用程序,也可以是用于从用户那里获取某些信息并向用户提供服务的web页面的集合。
谁使用API?这些服务可供不同类型的用户使用,例如:
ASP。NET Web APIAPI代表应用编程接口.
“ASP。NET Web API是一个可扩展的框架,用于构建HTTP(超文本传输协议)服务,可以从任何客户端(如浏览器和移动设备)访问。”
例如,我们通过不同的web应用程序如MakeMyTrip, Ixigo或Paytm和所有其他预订web应用程序进行预订,但所有应用程序仅使用IRCTC网站的凭据进行预订,即用户执行预订必须有IRCTC网站的登录凭据。 这些服务可供不同类型的用户使用,例如:
当应用程序在分布式系统上使用时,将使用Web API服务。 Web API接受来自不同类型的客户端设备(如移动设备、笔记本电脑等)的请求,并将它们发送到Web服务器进行处理,并将所需的数据返回给客户端。 ASP。NET Web API特性1) ASP。NET Web API与ASP非常相似。净MVC。 2)它包含与ASP相似的特性。NET MVC:
3)有一种误解,ASP。NET Web API是ASP的一部分。NET MVC框架,而它可以用于任何其他类型的web应用程序。 4)可以使用Web API开发独立服务。 5) ASP。NET Web API框架被广泛应用于开发宁静的服务。
基于rest的服务
- Web API是Web应用程序的增强形式。
- 简单对象访问协议是一种基于XML的协议,用于开发连接的web应用程序。
- SOAP的问题在于,对于每个请求,元数据附带有要传输的数据。
- 这个元数据将服务器上的小数据转换为大数据。
- Web API可能,也可能不是宁静的服务,但它们总是HTTP基础服务。
- REST代表具象状态转移.
- 在REST API中,只有对象的状态发送到服务器以查找所需的结果。
- 休息是一个体系结构模式开发一个使用HTTP作为底层通信方法的API。
当我们使用基于HTTP的服务时,例如BookMyShow应用程序,我们需要JSON格式,XML格式等托管形式的数据。 客户端请求信息通过发送参数使用API方法. REST API原理REST API的六个原则是:
- 无状态的
- 客户机-服务器
- 统一的接口
- 缓存
- 分层系统
- 按需编码
1)无状态:当客户端的请求被发送到服务器时,它包含了服务器处理请求所需的所有信息。请求可以是QueryString或URL的一部分。 例如,让我们假设从URL(统一资源定位器)请求资源。
资源标识
使用表示的资源操作
自描述的按摩
超媒体作为web应用程序的引擎
4)缓存:为了提供更好的性能,应用程序是可缓存的。这是通过隐式或显式地将响应标记为可缓存或不可缓存来实现的。如果资源被定义为可缓存的,那么客户机缓存可以重用等效请求的响应数据。 5)分层系统:分层系统通过限制组件行为使应用程序最稳定。分层体系结构还有助于增强安全性,因为每一层的组件不能与它们所在的每一层以外的组件交互。 6)按需编码:可选且最少使用的约束。通过创建一个不依赖于自身代码结构的智能应用程序来分析和简化客户端。
REST API的方法
- 我们致力于web技术,致力于CRUD应用程序。
- 在这些应用程序中,CRUD是指创建、读取、更新和删除资源。
- 在这里,资源被定义为期望的结果。例如:https://in.bookmyshow.com/noida/movies
- 在上面的例子中,用户在bookmyshow应用程序上寻找Noida市的电影,因此资源就是客户正在寻找的数据。
- 为了执行这些操作,如创建资源、读取资源、更新资源或删除资源,我们可以使用HTTP方法,也称为REST方法。
现在基本的CRUD操作以如下方式映射到HTTP协议:
CRUD方法 |
REST API方法 |
描述 |
创建 |
帖子 |
方法是指CRUD的C(Create)部分。 用于创建资源。 |
读 |
得到 |
方法引用CRUD的R(检索)部分。 用于读取资源。 |
更新 |
把 |
方法指的是CRUD的U(Update)部分。 用于更新资源。 |
删除 |
删除 |
方法引用CRUD的D(Delete)部分。 用于删除资源。 |
- REST API最好用于分布式系统。
- 分布式数据库无处不在,数据库存储数据,在这些数据上执行CRUD(创建、检索、更新和删除)操作。
让我们看一个从资源中获取一些菜肴的例子: www.testwebsite.com/dishes 现在,让我们假设我们想从资源中获得一些特定的菜肴: www.testwebsite.com/dishes/2
实现REST API简单应用程序让我们为学生创建一个REST API服务。
- 首先打开Visual Studio(这里我们有Visual Studio 2019)。
- 现在选择创建一个新项目:
现在选择模板ASP。NET Web应用程序(。NET Framework),并将项目命名为“WebApiStudentsSample".
在ASP。NET项目对话框,选择空的模板还要检查Web API选择。点击好吧.
生成的默认结构如下所示:
添加名称为“”的类学生定义属性和其他业务逻辑。我们还可以定义其他逻辑,如验证、数据访问等。
右键单击“模型”,选择“添加”选项,然后选择“类”,并为类命名为“Student.cs"
将StudentControllers.cs类添加到Controllers文件夹
- 控制器类处理来自客户端的HTTP请求,客户端可能是桌面应用程序、移动设备和浏览器。
- 右键单击控制器,选择“添加”选项,然后选择“控制器。”。
选择脚手架模板后,添加控制器窗口将打开,并为类命名为“StudentController".
注意:我们可以看到控制器类继承了System.Web.Http.ApiController类而不是controller类。
- 脚手架创建一个“StudentController.cs类的控制器文件夹中。
现在实现执行CRUD操作的方法。让我们假设我们需要所有学生的详细信息以及某个特定学生的详细信息。 现在添加以下代码:
在StudentController类控制器,你可以看到方法"GetAllStudents返回所有学生的列表和方法GetStudentDetails返回single的详细信息学生. 在下表中,您可以了解控制器如何使用路由URL执行CRUD操作。
控制器方法 |
路由URI(统一资源标识符) |
GetAllStudents |
/ api /学生 |
GetStudentDetails |
/ api /学生/ id |
运行Web API 要运行Web API,首先按F5或Ctrl+F5或单击IIS快速运行图标,然后浏览器将以URL打开https://localhost:44329/ 现在要查找所有学生的列表,请将URL编辑为https://localhost:44329/api/student Web API的需求
- Web API有助于访问来自不同互联网设备(如浏览器、移动应用程序和其他设备)的服务数据。
- 帮助开发基于rest的web服务。
- 帮助开发轻量级和可维护的Web服务。
- 用于创建两种类型的服务RESTful服务和非RESTful服务。
- 还支持JSON、XML和其他数据格式。
- 帮助开发支持HTTP服务的所有特性的服务,例如缓存、请求/响应头、版本控制等。
MVC vs. Web APIASP。NET API和ASP。NET MVC如下所示:
MVC |
Web API |
帮助开发处理请求并发送视图和数据的web应用程序。 |
帮助开发HTTP服务(RESTful和非RESTful服务),这些服务处理请求并只返回数据,而不是视图。 |
使用JsonResult以JSON格式表示结果数据。 |
返回特定格式的数据,如JSON、XML或任何其他格式 |
请求被映射到动作名称。 |
请求映射到Web API中的HTTP谓词 |
模型绑定、路由和其他特性都在System.Web.Mvc中定义。 |
Web API中也有相同的功能,这些功能是在System.Web.Http程序集中定义的。 |
MVC通常与视图交互以提供最终输出 |
支持内容协商功能,即决定与客户端机器兼容的响应数据的最佳格式。 |
Web API vs. WCFASP。NET WCF和ASP。NET Web APIare as follows:
功能 |
Web API |
WCF |
内容格式 |
Web API支持任何媒体格式,如XML, JSON等。 |
WCF支持基于soap的服务和XML格式。 |
举办 |
Web API支持IIS托管,自托管 |
WCF支持作品激活服务,也支持IIS托管,自托管。 |
MVC功能 |
ASP。NET Web API支持的功能,如控制器,路由,动作等与MVC相同。 |
像MVC一样,WCF不提供任何像控制器、路由、过滤器、拍卖结果等特性。 |
协议 |
Web API支持HTTP协议。 |
支持UDP、HTTP和自定义传输协议。 |
模型的使用 |
使用HTTP谓词作为称为CRUD操作的方法 |
ServiceContract属性定义了包含操作的服务契约。 OperationContract属性定义将使用的操作。 DataContract属性定义将在双方之间传输的属性或类型。 |
Web API与Web服务Web API和Web服务的区别如下:
特性 |
Web API |
Web服务 |
举办 |
托管是在应用程序或IIS中完成的。 |
托管是在IIS上完成的。 |
开源 |
Web API是开源的,任何支持JSON或XML的客户端都可以使用它。 |
Web服务不是开源的,但可以被任何支持XML的客户机使用。 |
体系结构 |
Web API是轻量级架构,适合带宽有限的设备,比如移动设备。 |
它需要SOAP协议来通过网络接收和发送数据,因此它不是轻量级体系结构。 |
协议 |
它支持HTTP协议:URL,请求/响应头,版本控制,缓存,内容格式。 |
仅支持HTTP协议。 |
Web API安全ASP。认证和授权是Web API安全的重要概念。 假设创建了一个web API,对API的访问是针对某些特定的用户,并且不同的用户可以使用不同的操作。
- 身份验证是验证用户的凭据并识别它们。
例如,用户用他的用户名和密码登录,服务器通过密码验证用户。
- 授权是为每个用户定义执行不同操作的访问级别。
例如,允许一个人创建资源,但不允许删除记录。
如果请求需要在web API中进行身份验证,但客户端没有在请求头中提供凭据,则服务器将返回401(未授权).
先决条件在学习Web API之前,用户必须有Http方法的基本知识,c#属性和MVC知识将是加分项。 观众本教程供初学者和专业人士学习Web API和RESTful服务。 问题本教程是在一个简单和容易的语言仍然可用,如果有任何困惑,请张贴在联系形式的疑问。
|