本文主要是介绍何为Restful?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概念
RESTful是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。
REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力,更好地使用现有Web标准中的一些准则和约束。
常见的HTTP状态码
200(“OK”):响应成功。
301(“Moved Permanently”): 资源的URI已更改
404 (“not found”): 资源不存在
409(“Conflict”): 当客户端试图执行一个”会导致一个或多个资源处于不一致状态“的操作时,发送此响应代码。
500(“Internal Server Error”): 服务器内部错误。
503 (“Service Unavailable”): 服务当前无法处理请求
Restful API 与 传统API之间的区别
操作 | 传统 API (对应HTTP请求方式) | Restful API (对应HTTP请求方式) |
---|---|---|
新增 | /user/create (POST) | /user (POST) |
删除 | /user/delete?uid=1 (GET) | /user/1 (DELETE) |
修改 | /user/update (POST) | /user (PUT) |
查询 | /user/query?uid=1 (GET) | /user/1 (GET) |
①传统的API的URL描述是一种请求行为;Restful API的URL描述的是资源(配合HTTP请求方式描述行为);
②传统的API ,它的HTTP状态码不论请求失败或是成功没有区别,依据响应报文判断;而Restful API,它的HTTP状态码表示不同的结果(例如500,200,502).
③传统的API可通过键值对,URL请求参数传递数据;Restful API主要通过json传递数据。
Restful的一些设计技巧
-
使用 _ 或 - 来让URI可读性更好
曾经Web上的URI都是冰冷的数字或者无意义的字符串,但现在越来越多的网站使用 _ 或 - 来分隔一些单词,让URI看上去更为人性化。 例如user/1/study-plan -
使用/来表示资源的层级关系
例如 /department/1/users 就表示了一个多级的资源, 指的是ID为1的部门下的所有用户,又例如 /orders/2012/10 可以用来表示2012年10月的订单记录。 -
使用?用来过滤资源
很多人只是把?简单的当做是参数的传递,很容易造成URI过于复杂、难以理解。可以把?用于对资源的过滤, 例如/users用来表示所有用户,而/users?state=enabled用来表示所有启用的用户, 这种URL通常对应的是一些特定条件的查询结果或算法运算结果。 -
, 或 ; (可替换为惯用的符号) 可以用来表示同级资源的关系
有时候我们需要表示同级资源的关系时,可以使用,或;来进行分割。例如哪天github可以比较某个文件在随意两次提交记录之间的差异,或许可以使用user/1;2作为URI。
一些不符合Restful风格的URL示例
HTTP请求方式 | 不符合 | 符合 |
---|---|---|
GET | /user/getUser/1 | /user/1 |
DELETE | /deleteUser/1 | /user/1 |
GET | /department/getUsersByDepartmentId/1 | /department/1/users |
这篇关于何为Restful?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!