php restful接口开发实例,php restful api接口规范
1.restful是基于资源和面向资源的架构风格(一个链接、一张图片、一段文字等。)
2.restful http协议
2.1网址:
2.1.1端口服务端口,默认为80。
2.1.2访问资源的路径
2.1.3发送到http服务器的查询字符串数据
锚锚
2.2请求的组成格式:请求行、消息头和请求体。
请求行格式:method request-uri http-version crlf
示例:GET/HTTP/1.1 CRLF
2.3请求方法
GET:请求获取由请求-URI表示的资源。
POST:将新数据追加到由请求-URI标识的资源中。
HEAD:请求获取由请求URI标识的资源的相应消息头。
PUT:请求服务器存储一个资源,并使用请求URI作为它的ID。
删除:请求服务器删除由请求-URI表示的资源。
选项:请求查询服务器的性能,或者查询与资源相关的选项请求。
2.4响应的组成格式:状态行、消息头和响应体。
行格式:http-version status-code reason-phrase crlf
示例:HTTP/1.1 200 OK
2.5常见状态代码
200 ok //客户端请求成功。
400错误请求//客户端请求有语法错误,服务器无法理解。
41未授权//服务器收到请求,但拒绝提供服务,所以需要授权访问。
44未找到//请求的资源不存在
00内部服务器错误//服务器中出现意外错误
03服务器不可用//服务器目前无法处理客户端请求,通用服务器已经到了性能瓶颈,拒绝服务。
3.如何设计RESTful API
3.1资源路径(URI)
概念:在RESTful架构中,每个URL代表一个资源,所以URL中不能有动词,只能用名词。一般来说,API中的名词应该是复数。
例如,如果有一个API提供关于动物园的信息,包括关于各种动物和员工的信息,那么它的路径应该设计如下
https://api.example.com/v1/zoos//Zoo资源公司
https://api.example.com/v1/animals/2//Zoo资源公司
3.2 HTTP动词
概念:对资源的操作(CURD),用HTTP动词表示。
GET:从服务器获取资源(一个或多个项目)。
POST:在服务器中创建新资源。
PUT:更新服务器中的资源(客户端提供更改后的完整资源)
补丁:更新服务器中的资源(客户端提供修改后的属性)【注意】:这个不常用,PUT通常用于更新。当使用PUT时,将返回所有字段,但当使用PATCH时,仅返回更新的字段。
删除:从服务器上删除一个数据。
邮政/动物园:建立一个新的动物园
GET /zoos/ID:获取指定动物园的信息。
PUT /zoos/ID:更新指定动物园的信息。
DELETE /zoos/ID:删除动物园。
3.3过滤信息
概念:如果记录很多,服务器不可能全部返回给用户。API应该提供参数并过滤返回的结果。
?Offset=10:设置返回记录的起始位置。
?Page=2 per_page=100:页数和每页的记录数。
?Sortby=name order=asc:对返回的结果进行排序,排序顺序。
?Animal_type_id=1:制定过滤标准。
3.4状态代码
200 ok服务器成功返回用户请求的数据,是幂等的。
201 CREATED成功创建或修改数据。
24 nocontnet成功删除数据。
400错误请求用户提出的请求有错误。这个运算是幂等的。
401未经授权支持当前操作,无需身份验证。
403 Forbidden表示支持禁访。
422不可处理的实体创建对象时,出现验证错误
500内部服务器错误服务器错误,用户将无法判断发出的请求是否成功。
3.5错误处理
概念:如果状态码是4xx或者5xx,应该会像用户一样返回错误信息。一般来说,在返回的信息中,error将作为键名,error信息作为键值。
错误“:”错误的参数
3.6返回结果
对于不同的操作,服务器返回给用户的结果应符合以下规范:
GET /collections:返回资源对象的列表(数组)。
GET /collections/identity:返回单个资源对象。
POST /collections:返回新生成的资源对象。
出售/收藏/身份:返回完整的资源对象
补丁/集合/身份:返回被修改的属性
删除/收藏/标识:返回一个空文档
4、谷歌商店搜索简单易用的客户端找到Restlet客户端-REST API测试,安装调试安静的工具
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。