ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

初识Asp.netCore RESTful WebApi

2021-05-20 16:56:38  阅读:182  来源: 互联网

标签:WebApi WebAPI Asp GET REST api RESTful API


   初识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。

        ②人类能读懂;如:错误:api/us  正确:GET api/users   //简短友好

 

        ③路由模板要体现资源的结构/关系。如:错误:api/{userid}/user  正确:GET api/users/{userid}

总结:以上仅仅是个人在学习过程中简明扼要的总结,还有许多诸如路由模板配置、如何搭建一个简单的WebAPI、如何全面了解一个请求体以及各种请求返回的错误码代表什么含义等等。

此外简单了解完WebAPI概念之后,感兴趣的还可以进一步了解OpenAPI(https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md),OpenAPI在各个领域的应用也非常广泛,使用频率也颇高。

 


标签:WebApi,WebAPI,Asp,GET,REST,api,RESTful,API
来源: https://blog.51cto.com/u_15127589/2794490

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有