当前位置:首页 > 技能相关 > C#与C++ > 正文内容

什么是WebAPI?为什么要用WebAPI?

admin3年前 (2022-11-07)C#与C++3030 修订时间:2022-11-07 10:33:10

1、关于API

应用程序接口(API,Application Programming Interface)是基于编程语言构建的结构,使开发人员更容易地创建复杂的功能。它们抽象了复杂的代码,并提供一些简单的接口规则直接使用。

简言之,API是一系列接口函数,它是模块内部能够对外提供的功能的封装。使用者不需要关心内部实现细节,只需要了解如何调用API,就可以利用其功能为自身应用服务了。

2、关于WebAPI

Web API是一个比较宽泛的概念。这里我们提到Web API特指ASP.NET Web API。

WebAPI 是一种用来开发系统间接口、设备接口 API 的技术,基于 Http 协议,请求和返回格式结果默认是 json 格式。比 WCF 更简单、更通用,比 WebService 更节省流量、更简洁。

WebAPI可以认为是WebService和WCF的演进版本,是随着移动互联网的发展而发展起来的,轻量化的,可用于前后端分离的一种数据封装和传递方式。前端可以通过WebAPI访问后端数据,实现灵活的前后端分离。

3、为什么要用WebAPI

Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。

4、WebAPI可以干什么

支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作

通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。

请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。

请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

原生支持OData。

支持Self-host或者IIS host。

支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

5、WebAPI vs MVC

MVC主要用来构建网站,既关心数据也关心页面展示,而Web API只关注数据

Web API支持格式协商,客户端可以通过Accept header通知服务器期望的格式

Web API支持Self Host,MVC目前不支持

Web API通过不同的http verb表达不同的动作(CRUD),MVC则通过Action名字表达动作

Web API内建于http://ASP.NET System.Web.Http命名空间下,MVC位于System.Web.Mvc命名空间下,因此model binding/filter/routing等功能有所不同

Web API非常适合构建移动客户端服务

6、WebAPI vs WCF

如果服务需要支持One Way Messaging/Message Queue/Duplex Communication,选择WCF

如果服务需要在TCP/Named Pipes/UDP (wcf 4.5),选择WCF

如果服务需要在http协议上,并且希望利用http协议的各种功能,选择Web API

如果服务需要被各种客户端(特别是移动客户端)调用,选择Web API


拓展阅读:

Web API的创建

ASP.NET (Core) WebApi 参数传递

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=245

标签: WebApi
分享给朋友:

相关文章

Web API的创建3年前 (2022-11-07)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。