初识Asp.netCore RESTful WebApi
一、背景:
因公司产品需要支持跨平台,开发团队便围绕这一目的开展学习,本人先展开了对Asp.netCore RESTful WebApi接口的学习与认知。
二、简单的概念:
1、要学习RESTful WebApi首先得知道什么是rest?
REST的全称:Representational State Transfer,表述性状态转移;
REST是一种架构风格,不是标准。由RoyFielding博士大约在2000年左右提出。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性;
REST需要使用一些规范、协议或标准来实现这种架构风格,而且REST与协议无关。JSON并不是REST强制的,甚至Http都不是REST强制使用的,但这也仅仅是从理论上来看。
2、认识RESTful API
通过查询总结有以下几点:
①满足这REST约束条件和原则的应用程序或设计就是 RESTful;
②符合REST约束的API就叫RESTful API;
③大多部的WebAPI并不是RESTfulAPI;
④在实际开发中很多WebAPI还是没法符合RoyFielding博士提出的这套风格。
3、RESTful API有什么特点?
特点:
①每一个URI代表1种资源;
②客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
③通过操作资源的表现形式来操作资源;
④资源的表现形式是XML或者HTML(或其它);
⑤客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。
4、RESTful的六个约束:
1.客户端-服务器;2.无状态;3.可缓存;4.分层系统;5.统一接口;6.按需代码(可选择)。如果任何一个服务违背了其中一个原则(第6个可选),将不能被称作 RESTful 系统。
三、WebAPI的简单认知
1、概念:WebAPI通常是指“使用Http协议并通过网络调用的API”,由于它使用了Http协议,所以需要通过URI信息来指定端点,WebAPI就是一个Web系统,通过访问URI可以与其进行信息交互。
2、WebAPI对外合约的一些基本原则(在设计时尽量满足)
①使用名词,而不是动词;如:错误用法:api/getUsers 正确:GET api/users。
总结:以上仅仅是个人在学习过程中简明扼要的总结,还有许多诸如路由模板配置、如何搭建一个简单的WebAPI、如何全面了解一个请求体以及各种请求返回的错误码代表什么含义等等。
此外简单了解完WebAPI概念之后,感兴趣的还可以进一步了解OpenAPI(https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md),OpenAPI在各个领域的应用也非常广泛,使用频率也颇高。