首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RESTful API 设计最佳实践

看看这个表格: POST(创建) GET(读取) PUT(更新) DELETE(删除) /employees 创建一个新员工 列出所有员工 批量更新员工信息 删除所有员工 /employees/56...(错误) 获取56号员工的信息 更新56号员工的信息 删除56号员工 对资源集合的URL使用POST方法,创建新资源 创建一个新资源的时,客户端与服务器是怎么交互的呢?...RESTful Web服务器为新员工生成ID,在其内部模型中创建员工,并向客户端发送响应。这个响应的HTTP头部包含一个Location字段,指示创建资源可访问的URL。...请求的HTTP body中包含要更新的属性值(21号员工的新名称“Bruce Wayne”)。 REST服务器更新ID为21的员工名称,并使用HTTP状态码200表示更改成功。...通常会用到一下几个: 2xx:成功3xx:重定向 4xx:客户端错误 5xx:服务器错误 200 成功301 永久重定向400 错误请求500 内部服务器错误201 创建304 资源未修改401未授权

1.3K60

RESTful API 设计最佳实践

看看这个表格: POST(创建) GET(读取) PUT(更新) DELETE(删除) /employees 创建一个新员工 列出所有员工 批量更新员工信息 删除所有员工 /employees/56...(错误) 获取56号员工的信息 更新56号员工的信息 删除56号员工 对资源集合的URL使用POST方法,创建新资源 创建一个新资源的时,客户端与服务器是怎么交互的呢?...RESTful Web服务器为新员工生成ID,在其内部模型中创建员工,并向客户端发送响应。这个响应的HTTP头部包含一个Location字段,指示创建资源可访问的URL。...请求的HTTP body中包含要更新的属性值(21号员工的新名称“Bruce Wayne”)。 REST服务器更新ID为21的员工名称,并使用HTTP状态码200表示更改成功。...通常会用到一下几个: 2xx:成功 3xx:重定向 4xx:客户端错误 5xx:服务器错误 200 成功 301 永久重定向 400 错误请求 500 内部服务器错误 201 创建 304 资源未修改

1.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Salesforce Integration 概览(五) Remote Call-In(远程操作 外部->salesforce)

问题和考虑因素 问题: 远程系统如何与Salesforce连接并进行身份验证,以通知Salesforce外部事件、创建记录更新现有记录?...REST API Best Salesforce提供了一个标准的REST API,远程系统可以使用该API: –发布事件以通知您的Salesforce组织 –查询组织中的数据 –创建更新和删除数据...远程系统只需要能够形成HTTP请求并处理返回的结果(XML或JSON)。不适用于Platform Event,因为使用者处的事务预插入逻辑不适用于基于事件驱动的体系结构。...因为salesforce在国内没有服务器,并且访问很慢,基于SOAP / REST 标准的API都是同步操作,很容易经常碰到超时现象,除此以外,我们还要考虑DML的程序问题或者 validation rule...如果未实现幂等性,则对同一消息的重复调用可能会产生不同的结果,可能会导致数据完整性问题,例如,创建重复记录、重复处理事务等。

2.8K20

程序员入职避免挨骂小知识-RESTful风格

4.1、传统的API设计     客户端虽然有很多类型, 但是只要服务端统一提供API接口, 多个客户端基于相同的协议来调用该API接口即可获取数据,不同开发者对API接口的设计习惯不同 ,拿员工新增举例...PUT更新整个对象 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性【补丁】)。 PATCH更新个别属性 DELETE(DELETE):从服务器删除资源。...404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录服务器没有进行操作,该操作是幂等的。...422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。

59730

RESTful简介

PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。 PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。 DELETE(DELETE):从服务器删除资源。...limit=10:指定返回记录的数量 ?offset=10:指定返回记录的开始位置。 ?page=2&per_page=100:指定第几页,以及每页的记录数。 ?...422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功 错误处理 状态码是4xx,就应该向用户返回出错信息。...RESTful风格API缺点和不足 一个适用于简单操作的接口规范而已,无规矩不成方圆,复杂操作并不适用,还是看业务发展需求的.

86020

赏心悦目的RESTful API这样来设计!

例如, 动物,学校和员工是资源; 删除,添加,更新是对这些资源执行的相关操作 集合 集合是资源集合,例如,公司是公司资源的集合 URL URL(统一资源定位符)是可以通过其定位资源的路径,并且可以对其执行某些操作...针对这个问题,答案依旧没有统一标准,如果多个版本的API版本返回数据结果结构一样,那没必要区分版本,如果结构已经发生变化,而且要向下兼容,那版本号是很好的区分方式,而且通过 URL 加版本的方式可以更好的发现资源...比如: 异步操作:服务器已接收到请求,但是还未处理,但是会在未来处理 资源已经存在,没有创建新的资源 (有些业务可能会返回错误信息"您创建的数据已存在",所以这种情景没有明确的规定,符合自己的业务需求即可...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError...API 文档 Swagger是一种广泛使用的工具来用来记录与呈现 REST API,它提供了一种探索特定 API 使用的方法,因此允许开发人员理解底层的语义行为。

1.4K10

如何设计好的RESTful API

例如, 动物,学校和员工是资源; 删除,添加,更新是对这些资源执行的相关操作 集合 集合是资源集合,例如,公司是公司资源的集合 URL URL(统一资源定位符)是可以通过其定位资源的路径,并且可以对其执行某些操作...针对这个问题,答案依旧没有统一标准,如果多个版本的API版本返回数据结果结构一样,那没必要区分版本,如果结构已经发生变化,而且要向下兼容,那版本号是很好的区分方式,而且通过 URL 加版本的方式可以更好的发现资源...比如: 异步操作:服务器已接收到请求,但是还未处理,但是会在未来处理 资源已经存在,没有创建新的资源 (有些业务可能会返回错误信息"您创建的数据已存在",所以这种情景没有明确的规定,符合自己的业务需求即可...比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式 这里要注意状态码 401 和 403 的区别 5xx 状态码 5xx 状态码表示服务端错误,通常只会用到两个: 500InternalServerError...API 文档 Swagger是一种广泛使用的工具来用来记录与呈现 REST API,它提供了一种探索特定 API 使用的方法,因此允许开发人员理解底层的语义行为。

1.6K20

我是如何根据豆瓣api来理解Restful API设计的

REST本身没有创造新的技术、组件或服务,它的理念就是在现有的技术之上,更好的使用现有的 web规范。用REST规范的web服务器,能够更好的展现资源,客户端能够更好的使用资源。...limit=10 :指定返回10条记录。 不使用无意义的字符串、数字,要做到简洁。 3.正确使用method get -只用做资源的读取。 post-通过用作创建一个新的资源。...put -通过用作更新资源或者创建资源 head-只获取某个资源的头部信息。...2xx: 请求正常处理并返回 3xx: 重定向 4xx: 客户端请求有错误 5xx: 服务端请求有错误 比如豆瓣api返回的状态码说明: 状态码 含义 说明 200 ok 请求成功 201 created...500 internal server error 内部错误 5.使用通用的错误码 通用错误码,具体产品由具体产品api给出。

1.7K50

【RESTful】RESTful API 接口设计规范 | 示例

状态码:当客户端发送一个请求时,服务端应当响应什么状态码 错误处理:如当发现客户端传入的参数有问题时,该返回什么样的状态信息。...GET : 从服务器去除资源 POST :在服务器新建一个资源 PUT:在服务器更新资源(客户端提供改变后的完整资源,服务端返回完整的更新字段) PATCH:在服务器更新资源(客户端提供改变的属性,服务端返回只发生了更新的字段.../zoos/ID : 删除某个动物园 过滤信息 如果记录数量过多,服务器不可能都将它们返回给用户。...筛选时,API应该提供一个参数,过滤一下返回的结果。 例如: ?offset = 10 :指定返回记录的开始位置 ?page = 2&per_page = 100 :指定第几页,以及每页的记录数 ?...例如创建用户资源时需要用户名、密码,而前端只提供用户名字段,那么就要返回一个422 状态码,并返回错误信息:”密码不能为空“ 500 INTERNAL SERVER ERROR 服务器内部错误,此时服务端无法处理任何请求

1.3K20

REST,以及RESTful的讲解

返回的结果往往是很随意,各种错误信息本来就是用Http的状态码构成的,可是很多人还是喜欢把错误信息返回返回值中。...最常见的就是Code和Message,当然对于这一点,我个人是保留疑问的,我的观点是,Http本身的错误服务器内部错误还是需要在不断层面分开的,不能混在一起。可是在大神眼里并非如此。...CRUD,对不对,就是创建,读,更新,删除。再看Http的Method?是不是非常完美?...比如:左边是错误的设计,而右边是正确的 GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗 GET /rest/api/addDogs...尤其是复杂的关系,操作,资源集合,硬性套用rest原则设计非常困难。在rest基础上的HATEOAS,返回的json里增加了相应的关系和url。这也同样带来问题

71130

Restful API设计规范

在当前流行的前后端分离架构,人们发现原来这套用于超文本传输的协议是如此适合用于设计基于互联网的api接口,基于http动词以及标准的http status返回信息,能够非常好地描述api的特性,并且可读性非常好...经常会用到的status code整理如下: 200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。...404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录服务器没有进行操作,该操作是幂等的。...422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。 最后推荐大家github的api文档: ? 完毕!!!

1.4K30

restful最佳实践--接口规范

是否建⽴了前端的错误追踪机制?能否帮助我们快速地定位出问题。 前后端分离的核⼼:后台提供数据,前端负责显⽰ 前提 RESTful API 统一约束客户端和服务器之间的接口。...通过请求体携带资源发送给服务器。注意:在资源ID由客户端而不是由服务器选择的情况下,也可以使用PUT来创建资源。修改成功返回200,创建成功返回201。建议使用post进行创建新资源。...创建成功通常返回201。...NOT FOUND 请求记录不存在,服务器没有进行操作(幂等操作) 406 Not Acceptable 请求的格式不符合(比如用户请求JSON格式,但是只有XML格式) 500 INTERNAL SERVER...JSON数组,单条记录使用JSON对象 "message": [] // 状态为error或fail时,对应的错误信息 } status说明 状态 说明 fail 返回码为 500-

1.9K42

REST 深度进阶

不写入、不更新,只读取数据。这个概念很简单。而且,在这个前提下,相同的请求一定会返回相同的结果。 POST - 看字面的意思就明白,就是存储一些东西,像是在数据库中创建一条记录、在某处写入一些内容。...PUT - 字意就是更新内容。所以当我们需要更新数据时,就需要定义为 PUT 方法。当然,也可以用来创建新数据。 DELETE - 删除,很好理解。...请求被服务器重定向到另一个 URL,就会有这个返回。 4xx - 客户端错误响应代码。最常见的是 400,请求协议格式或内容错误。 5xx - 服务器错误响应。...最常见的是 500,服务端程序,也就是 API内部,有内存溢出或异常抛出。 开发中,我们可以充分并准确使用这些状态码。...而且,除了状态码外,还要返回相应的错误消息,例如:输入参数 clientId 没有输入、ID 为 23 的数据记录不存在,等等。

47210

restful api接口规范和服务调用的区别_rest接口规范

POST一般向“资源集合”型uri发起 POST /animals //新增动物 POST /zoos/1/employees //为id为1的动物园雇佣员工 PUT:更新单个资源(全量),客户端提供完整的更新后的资源...对第三点的实现稍微多说一点: Java 服务器端一般用异常表示 RESTful API错误API 可能抛出两类异常:业务异常和非业务异常。...非业务类异常表示不在预期内的问题,通常由类库、框架抛出,或由于自己的代码逻辑错误导致,比如数据库连接失败、空指针异常、除0错误等等。...异步任务 对耗时的异步任务,服务器端接受客户端传递的参数后,应返回创建成功的任务资源,其中包含了任务的执行状态。客户端可以轮训该任务获得最新的执行进度。...URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API返回404 not found 或 410 gone;对迁移的API返回 301 重定向。

1.7K10

【全栈修炼】422- RESTful 架构及实践 修炼宝典

/api/users/100 新建一条 users 记录 POST /api/users 更新一条 users 记录 PUT /api/users/100 删除一条 users 记录 DELETE /...添加用户 这一步我们会创建 RESTful API 中的/users,使用 POST 来添加用户记录: // index.js // 省略之前文件 只展示需要实现的接口 // mock 一条要新增的数据...500 Internal Server Error:客户端请求有效,服务器处理时发生了意外。 503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。 3....3.2 发生错误时,不要返回 200 状态码 在发生错误时,如果还返回 200 状态码,前端需要解析返回数据才知道错误信息,这样实际上取消了状态码,是不恰当的。...正确的做法应该是在错误时,返回对应错误状态码,并将错误信息返回: HTTP/1.1 400 Bad Request Content-Type: application/json { "error"

1.3K30
领券