标签:upd invalid name demo 并发 created 内容 container 服务器端
REST(representational state transfer) 表现层状态转换。
是浏览器与服务器通信方式的一种架构风格。
基于 REST 的服务被称为 RESTful 服务。
REST 不依赖于任何协议,但是几乎每个 RESTful 服务使用 HTTP 作为底层协议。
服务的目的是提供一个窗口给客户端以便客户端能访问这些资源。服务架构师和开发人员想要这些服务变得易于实现、维护、扩展、伸缩。RESTful 架构具备这些。
操作 |
SQL方法 |
HTTP动词 |
CREATE |
INSERT |
POST |
READ |
SELECT |
GET |
UPDATE |
UPDATE |
PUT/PATCH |
DELETE |
DELETE |
DELETE |
200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT - [DELETE]:用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。
GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档
Java
,还是PHP
,还是Node.js
还是Go
,你都得支持HTTP
请求。我API
平台只需要提供这个语言的SDK
,保证能按照消息协议调用就好。
Restful
的URI
无法完全对请求参数做强格式校验。最后的方法参数绑定,模拟内部请求时往往容易出问题,尤其是以Java等强格式语言的系统。不能像WebService
一样清晰描述请求报文。JSON
、XML
。这当中,编码,正反序列化,等操作,往往就会有性能瓶颈。而且,Java在这块资源消耗极大。以Github的ROP
这个框架为例,当年测试时,它在并发请求过高的时候就会有一个内存泄漏问题。
用来为前端模拟Rest API的。
1
|
$ npm install -g json-server |
创建一个db.json
1
2
3
4
5
6
7
8
9
|
{ "posts" : [ { "id" : 1, "title" : "json-server" , "author" : "typicode" } ], "comments" : [ { "id" : 1, "body" : "some comment" , "postId" : 1 } ], "profile" : { "name" : "typicode" } } |
开启json server
1
|
$ json-server --watch db.json |
然后打开http://localhost:3000/posts/1,你会看到
1
|
{ "id" : 1, "title" : "json-server" , "author" : "typicode" } |
demo: rest-api-demo.zip
chrome插件,一个 HTTP 通信测试工具,模拟请求的。可以模拟GET, POST, PUT, DELETE, 等等的各种请求。(测试上面那个demo的时候可以用它模拟请求)
可到官网 GetPostman.com 下载独立安装包;也可以参考这篇文章www.cnblogs.com/mafly/p/postman.html,下载 Chrome 浏览器的插件。
标签:upd invalid name demo 并发 created 内容 container 服务器端
原文地址:http://www.cnblogs.com/sameen/p/6143470.html