API定义及经常使用规范 RESTful (简述api的四种类型)
本文目录导航:
RESTful API定义及经常使用规范
RESTful设计格调是一种接口开发的指点思维而非详细规范,本文旨在为遵照该格调的HTTP RESTful API提供成功的最佳通常指南。
接口设计应遵照繁复、明晰的准则,以HTTP方法(GET、POST、PUT、DELETE)定义操作,经过URL结构表现资源的档次相关。
在详细成功RESTful API时,设计者需留意以下几点: 1. **接口组织**:模块化治理接口,确保每个模块有明白的职责和版本控制。
API模块信息应存储在APP性能项中,经过初始化API模块接口失掉每个模块的endpoint和版本号。
2. **公共参数**:定义公共恳求参数并以Header方式传递,例如session id、user_id、token等。
这些参数在恳求中智能失掉,简化开发。
3. **安保性**:前往形态码来批示接口恳求的成功或失败,经常使用JSON格局的信息体提供失误码code和失误说明message。
同时,成功速率限度(Rate Limiting)战略以防止API滥用。
4. **恳求方法**:GET用于失掉资源、PUT用于降级资源、DELETE用于删除资源,POST则用于创立资源。
这些方法应基于幂等性准则来选择经常使用GET、PUT或POST。
5. **参数处置**:确保从客户端失掉的json数据中数值类型字段以数值方式处置,不论其能否携带引号。
6. **工具允许**:介绍经常使用Postman作为接口测试工具,繁难启动接口测试与文档生成。
遵照上述指点,开发者能够构建高效、安保且易于保养的HTTP RESTful API,为服务提供稳固、照应迅速的接口允许。
如何设计好的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
前言在探求RESTful格调接口之前,你能否对它在处置哪些疑问、领有哪些运行场景感到猎奇?听完上方的形容,你将能明白其关键性:在互联网及移动设施开展初期,页面恳求和并发量不高,灵活页面能满足大少数需求。
但随着互联网和移动设施的盛行,Web运行需求参与,灵活页面因低效被HTML+JavaScript取代,客户端种类多样化,接口规范性成为关键。
RESTful格调接口,因其结构明晰、易于了解和裁减,逐渐盛行起来,成为目前最盛行的接口设计规范。
RESTful API在泛滥公司中宽泛运行,GitHub的API设计是典型例子,可作为学习参考。
许多人虽经常使用传统API启动交互,但对RESTful API的认知或者仅逗留在外表。
本教程将带你深化了解RESTful,并用SpringBoot实战RESTful API。
一、REST引见REST架构格调是一种软件设计格调,它并重于客户端和服务端交互。
它关键用于网络运行,设计繁复、档次明显,易于成功缓存等机制。
REST架构由Roy Thomas Fielding在2000年博士论文中提出,强调节解和评价基于网络运行的架构设计,旨在创立性能弱小、性能优秀、易于通讯的架构。
REST架构并非规范,而是一种设计格调,满足这些格调的程序或接口称为RESTful。
RESTful API即遵照REST架构格调的接口。
Fielding博士在论文中提出REST架构的6个限度条件,可称为RESTful 6大准则,包括客户端-服务端分别、有形态、可缓存性、一致接口、分层系统和按需代码。
二、RESTful API设计规范了解RESTful规则和个性后,如何设计RESTful API?从URL门路、HTTP恳求动词、形态码和前往结果等方面详细思考。
上方总结RESTful API设计规范,包括URL设计、HTTP动词经常使用、形态码运行和前往数据格局。
URL设计遵照RESTful规范,通常蕴含版本号、资源类型和资源ID。
URL应明晰、繁复,合乎RESTful架构。
HTTP动词有GET、POST、PUT和DELETE,区分对应失掉、创立、降级和删除资源。
每个动词用于明白操作类型,防止混杂。
形态码用于示意恳求处置结果,如200示意成功,404示意未找到资源。
前往数据通常为JSON格局,便于客户端解析。
总结本文从RESTful特点登程,深化讨论RESTful API设计,经过SpringBoot实战案例,展现RESTful格调的API设计与成功。
了解RESTful并非故步自封,而是依据业务需求灵敏选用。
学习RESTful API将协助你在名目中成功更高效、可保养的接口设计。