Restful API 接口设计规范以及规范 (restful API)

Restful API 接口设计规范以及规范 (restful API)

本文目录导航:

Restful API 接口设计规范以及规范

了解RESTful概念,咱们首先要知道REST代表的是Representational State Transfer,这是构建架构的一组规则和解放。

REST并不是发明新的技术或组件,而是应用Web的现有特色和才干,更好地利用Web规范中的一些准绳和解放。

实践上,REST架构格调并不是绑定在HTTP上,但目前HTTP是惟一与REST关系的实例。

因此,咱们将经过HTTP成功REST。

RESTful架构的外围思念在于经常使用一致资源标识符(URI)来示意资源,规范HTTP方法(如GET、POST、PUT、DELETE、Patch)来操作资源。

资源表述是指以机器可读的模式形容资源形态的文档。

资源与URI息息关系,任何足够关键且被援用的事物都可以是资源,每个资源领有一个世界惟一的URL。

例如,石榴、数据库中的一条记载等都是资源。

当客户端恳求资源时,主机将提供一个蕴含资源信息的文档作为照应,这就是资源的表述。

资源可以有多种表述,以顺应不同的需求,如全体概括性表述、具体表述或不同格局(如JSON、XML)表述。

资源之间经过链接启动衔接,这不只是成功从一个资源到另一个资源的导航,也是资源形态转移的基础。

例如,在GitHub恳求某个组织下的名目列表时,照应头和照应体中蕴含链接,指点客户端访问更多资源。

客户端与主机之间的互动触及数据和形态的变动,HTTP协定作为有形态协定,一切形态都保留在主机端。

因此,客户端操作主机必定经过特定手腕让主机出现形态转化,这一环节称为体现层形态转移。

客户端可以经常使用HTTP协定的四个基本动词(GET、POST、PUT、DELETE)来口头操作,如失掉资源、创立资源、降级资源或删除资源。

在设计RESTful架构时,应器重资源表述的链接提供,以增强资源的连通性,而不只仅专一于CRUD操作。

同时,了解形态转移的概念关于构建照应式和灵活的Web运行至关关键。

如何更好的设计RESTful API

一个好的RESTful API,应该具有以下特色:这个API应该是对阅读器友好的,能够很好地融入Web,而不是与Web貌合神离。

1.阅读器是最经常出现和最通用的REST客户端。

好的RESTful API应该能够经常使用阅读器+HTML成功一切的测试(不须要经常使用编程言语)。

这样的API还可以很繁难地经常使用各种智能化的Web配置测试、性能测试工具来做测试。

Web前端运行(基于阅读器的RIA运行、移动App等等)也可以很繁难地将多个RESTful API的配置组合起来,建造Mashup类的运行。

这个API中所蕴含的资源和关于资源的操作,应该是直观和容易了解的,并且合乎HTTP协定的要求。

REST开发又被称作“面向资源的开发”,这说明关于资源的形象,是设计RESTful API的外围内容。

RESTful API建模的环节与面向对象建模相似,是以名词为外围的。

这些名词就是资源,任何可命名的形象概念都可以定义为一个资源。

而HTTP协定并不是一种传输协定,它实践提供了一个操作资源的一致接口。

关于资源的任何操作,都应该映射到HTTP的几个有限的方法(罕用的有GET/POST/PUT/DELETE四个方法,还有不罕用的PATCH/HEAD/OPTIONS方法)下面。

所以RESTful API建模的环节,可以看作是具有一致接口解放的面向对象建模环节。

依照HTTP协定的规则,GET方法是安保且幂等的,POST方法是既不安保也不幂等的(可以用来作为一切写操作的通配方法),PUT、DELETE方法都是不安保但幂等的。

将对资源的操作正当映射到这四个方法下面,既不适度经常使用某个方法(例如适度经常使用GET方法或POST方法),也不减少过多的操作以致于HTTP的四个方法不够用。

2.假设发现资源上的操作过多,以致于HTTP的方法不够用,应该思考设计出更多的资源。

设计出更多资源(以及相应的URI)关于RESTful API来说并没有什么坏处。

这个API应该是松耦合的。

RESTful API的设计包括了三个墨守成规、由低到高的档次:资源形象、一致接口、超文本驱动。

正是这三个档次确保了RESTful API的松耦合性。

3.当设计面向互联网的API时,松耦合变成了一种“必定有”的强需求。

紧耦合的API十分软弱,一旦发布进来,主机端和客户端都不可继续退化。

尤其是主机端,发布进来的接口基本不敢改,改了之后,简直一切客户端运行立刻不可反常上班。

REST这种架构格调就是紧耦合API的解毒剂,这个话题可以谈的很深,这里就不倒退了。

感兴味的读者可以参考《REST实战》。

这个API中所经常使用的表述格局应该是经常出现的通用格局在RESTful API中,关于资源的操作,是经过在主机端-客户端之间传递资源的表述来直接成功的。

资源的表述可以有很多种格局,并且在照应和恳求中的资源表述格局也会有所不同。

GET/POST照应中的资源表述格局,经常出现的有HTML、XML、JSON;POST/PUT恳求中的资源表述格局,经常出现的有规范的HTML表单参数、XML、JSON。

4.这些经常出现表述格局,解决起来十分容易,有少量的框架和库提供允许。

所以除非有很正当的要求,通常不须要经常使用自定义的私有格局。

经常使用HTTP照应形态代码来表白各种出错状况HTTP照应形态代码,是HTTP协定这个一致接口中用来表白出错状况的规范机制。

照应形态代码分红两局部:status code和reason phase。

两局部都是可定制的,也可以经常使用规范的status code,只定制reason phase。

5.假设一个所谓的“RESTful API”关于任何恳求都前往200 OK照应,在照应的信息体中前往出错状况信息,这种做法显然不合乎“确保操作语义的可见性”这个REST架构格调的基本要求。

这个API应该关于HTTP缓存是友好的6.充沛应用好HTTP缓存是RESTful API可伸缩性的基本。

HTTP协定是一个分层的架构,从两端的user agent到origin server之间,可以拔出很多两边组件。

而在整个HTTP通讯链条的很多位置,都可以设置缓存。

HTTP协定内建有很好的缓存机制,可以分红过时模型和验证模型两套缓存机制。

假设API设计者齐全没有思考过如何应用HTTP缓存,那么这个API的可伸缩性会有很多疑问。

如何设计好的RESTful API

1.接口命名规则端口/v1/接口名IP:主机IP地址端口:Restful端口号V1:版本号(1)接口名:命名规则:现有接口方法去第一个单词后,全小写命名,如:市区信息查问, 原接口名:queryCityId (String id)Restful接口:端口/v1/cityid\2.参数规则 参数提交模式:Application/www-form-urlencoded参数命名:单词采取小写,复合词采取下划线离开的全小写命名。

参数规则:批量查问需有page_size以及page_num参数,防止一次性性查问,局部参数需有自动值设定。

Restful接口设计准绳l经常使用规范HTTP方法成功资源CURD操作;l驳回json作为API输入输入;l以json输入失误信息。

注:Http协定详解HTTP恳求方法在 RESTfulAPI 中的典型运行一组资源的URI,比如user/ 列出 URI,以及该资源组中每个资源的具体信息(后者可选)。

经常使用给定的一组资源交流以后整组资源。

在本组资源中创立/追加一个新的资源。

该操作往往前往新资源的URL。

删除 整组资源。

单个资源的URI,比如失掉 指定的资源的具体信息,格局经常使用JSON 交流/创立 指定的资源。

并将其追加到相应的资源组中。

把指定的资源当做一个资源组,并在其下创立/追加一个新的元素,使其附属于以后资源。

删除 指定的元素。

PUT 和 DELETE 方法是幂等方法。

GET方法是安保方法 (不会对主机端有修正,因此当然也是幂等的)。

允许的前往码列表:HTTP前往码成功举例例如,一个繁难的客户治理运行:罗列一切客户:URL: GET http:// ip: 8080/v1/crm/customer输入:无输入:略 出现某一位客户:URL: GET http:// ip: 8080/v1/crm/customer/[customer id]输入:无输入:略 新增客户:URL: POST http:// ip: 8080/v1/crm/ customer输入:略输入:略 降级用户:依据降级参数,须要降级哪些参数就选哪些参数。

你可能想看:
« 上一篇
下一篇 »

相关推荐

python爬虫教程PDF,Python爬虫书PDF

2026年09月02日

30阅读

外国教程python,python编程教学视频

2026年09月02日

24阅读

python简明教程沈洁元,python详细基础教程

2026年09月02日

21阅读

python库包教程,python 包

2026年09月02日

26阅读

python教程大全集,python教程600集

2026年09月02日

26阅读

python入门教程完整版,python零基础入门全套教程视频

2026年09月02日

22阅读