ASP。NET Web API教程

Asp。Net Web Api教程"><p>在本教程中,我们将讨论以下主题:</p>
           <ul class=
  • 什么是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?

    这些服务可供不同类型的用户使用,例如:

    • Web浏览器
    • 移动应用程序
    • 桌面应用程序
    • 物联网

    ASP。NET Web API

    API代表应用编程接口

    “ASP。NET Web API是一个可扩展的框架,用于构建HTTP(超文本传输协议)服务,可以从任何客户端(如浏览器和移动设备)访问。”

    例如,我们通过不同的web应用程序如MakeMyTrip, Ixigo或Paytm和所有其他预订web应用程序进行预订,但所有应用程序仅使用IRCTC网站的凭据进行预订,即用户执行预订必须有IRCTC网站的登录凭据。

    这些服务可供不同类型的用户使用,例如:

    • Web浏览器
    • 移动应用程序
    • 桌面应用程序
    • 物联网

    当应用程序在分布式系统上使用时,将使用Web API服务。

    Web API接受来自不同类型的客户端设备(如移动设备、笔记本电脑等)的请求,并将它们发送到Web服务器进行处理,并将所需的数据返回给客户端。

    Asp。Net Web Api教程"><p><strong>使用不同类型的API的自定义Web应用程序</strong></p><p>Web API是<strong>System-System交互</strong>,其中来自一个系统的信息由另一个系统处理,并将结果数据显示给查看者。</p><p>让我们从Web API例子中再举一个例子,我们想要麦当劳汉堡。</p><p>让我们假设麦当劳只允许厨师外卖,而不允许其他人。在这里,mcdonald - takeaway(厨师)就像一个API,允许其他系统(厨师)访问服务并提供所需的数据。</p>
           <hr><h2 id=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方法

    Asp。Net Web Api教程"><p>例如,如果我们想预订一个节目,我们想知道城市、电影名称、地点、时间等详细信息。我们将对象的状态发送到web服务器,API将检查数据是否可用。</p><p>如果数据可用(电影对该实例可用),那么它将用对象将响应发送回客户端。</p><p>对象的值被发送到客户端,也就是说,基本上对象的状态被发送到客户端,所以每次你都不需要创建一个对象。</p>
           <blockquote>
            <em>“REST API是一种架构风格,也是一种用于通信的方法,经常用于各种web开发。”</em>
           </blockquote><p>这是一个<strong>无状态的</strong>,客户-服务器模型。</p><img src=REST API原理

    REST API的六个原则是:

    1. 无状态的
    2. 客户机-服务器
    3. 统一的接口
    4. 缓存
    5. 分层系统
    6. 按需编码

    1)无状态:当客户端的请求被发送到服务器时,它包含了服务器处理请求所需的所有信息。请求可以是QueryString或URL的一部分。

    例如,让我们假设从URL(统一资源定位器)请求资源。

    Asp。Net Web Api教程"><p><strong>2)客户端-服务器:</strong>分离功能有助于提高跨多个平台的用户界面可移植性,并扩展服务器组件的可伸缩性。</p><p><strong>3)统一接口:</strong>为了在整个应用程序中获得一致性,REST定义了四个接口约束,分别是:</p>
           <ul class=
  • 资源标识
  • 使用表示的资源操作
  • 自描述的按摩
  • 超媒体作为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 Api教程">
           <ul class=
  • 现在选择模板ASP。NET Web应用程序(。NET Framework),并将项目命名为“WebApiStudentsSample".
  • Asp。Net Web Api教程">
           <ul class=
  • 在ASP。NET项目对话框,选择空的模板还要检查Web API选择。点击好吧
  • Asp。Net Web Api教程">
           <ul class=
  • 生成的默认结构如下所示:
  • Asp。Net Web Api教程"><p><strong>将Student.cs类添加到Models文件夹</strong></p>
           <ul class=
  • 添加名称为“”的类学生定义属性和其他业务逻辑。我们还可以定义其他逻辑,如验证、数据访问等。
  • 右键单击“模型”,选择“添加”选项,然后选择“类”,并为类命名为“Student.cs
  • Asp。Net Web Api教程"><p>添加以下代码来定义student类的属性:</p>
           <div class=

    将StudentControllers.cs类添加到Controllers文件夹

    • 控制器类处理来自客户端的HTTP请求,客户端可能是桌面应用程序、移动设备和浏览器。
    • 右键单击控制器,选择“添加”选项,然后选择“控制器。”。
    Asp。Net Web Api教程"><p><strong>增加支架</strong>窗口将打开,然后选择<strong>Web API2控制器?空</strong>模板。</p><img src=
  • 选择脚手架模板后,添加控制器窗口将打开,并为类命名为“StudentController".
  • Asp。Net Web Api教程"><h4 class=注意:我们可以看到控制器类继承了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

    Asp。Net Web Api教程"><p>要获取单个学生的详细信息,请编辑URL为:</p><p><strong>https://localhost:44329/api/student/2</strong></p><img src=Web API的需求
    • Web API有助于访问来自不同互联网设备(如浏览器、移动应用程序和其他设备)的服务数据。
    • 帮助开发基于rest的web服务。
    • 帮助开发轻量级和可维护的Web服务。
    • 用于创建两种类型的服务RESTful服务和非RESTful服务。
    • 还支持JSON、XML和其他数据格式。
    • 帮助开发支持HTTP服务的所有特性的服务,例如缓存、请求/响应头、版本控制等。

    MVC vs. Web API

    ASP。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. WCF

    ASP。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服务。

    问题

    本教程是在一个简单和容易的语言仍然可用,如果有任何困惑,请张贴在联系形式的疑问。







    Youtube">
       <span class=观看视频请加入我们的Youtube频道:现在加入

    反馈


    帮助他人,请分享

    脸谱网"></a>
      <a rel=推特"></a>
      <a rel=pinterest"></a>
      <ins class=

    学习最新教程