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

REST API 设计最佳实践:如何构建、设计使用 API

但是,我主要接触REST,这是一种基于资源API和Web服务开发架构风格。在我职业生涯中有很大一部分时间都参与了构建、设计使用API 项目。...但是,我也曾遇到过一些让 REST 蒙羞 API 例子,错误使用 HTTP 状态码、纯文本响应、不一致模式、插入端点中动词......因此我决定写篇文章分享一下,在设计 REST API最佳实践。以下是关于设计优秀REST API 一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....学习 HTTP 基础知识 如果你想构建一个设计良好REST API,那么你必须了解HTTP协议基本知识。我坚信这将帮助你做出正确设计选择。...HTTP 协议提供给 REST API 设计功能 ,但这些都必须牢记在心里。

31340

聊聊rest api设计

序 本文主要研究下rest api设计设计准则 easy to use & hard to misuse 易用不易误用,也就是api设计不要太复杂,要简单易用,而且还不能容易用错。...版本不建议版本化,建议采用新领域命名才与原有的api区分开来 输出规范 返回码遵循http返回码规范,4xx表示客户端错误,5xx表示服务端错误。...错误信息格式type表示错误异常类型,code表示错误编号用于个性化错误提示,msg用于错误信息描述,link提供该错误信息具体描述页面 安全相关 调用方鉴权对于api消费者,要求调用时候强制提供...服务质量保障 提供SLA 提供流量管理、熔断、限流 提供服务扩容机制 提供故障演练 提供审计功能 监控异常流量 提供调用方间隔离 小结 rest api设计牵扯方面比较多,本文暂时只是先列了一些...doc API设计要点 聊聊jpa动态查询 使用RSQL实现端到端动态查询

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

Flink REST API 设计指南

Flink REST API 介绍Flink REST API 是 JobManager 提供 HTTP 接口,用户可以通过 GET、POST 等 REST 定义方法,请求获取作业、JobManager...非阻塞 Flink REST API 设计要点关于拓展 Flink REST API 方法,我们可以在 Flink 官网文档、各类技术社区文章中得到详细指引,因而这里不再赘述基础细节,而是更侧重于讲解遇到一些常见问题和解决方案...→ TaskManager → 用户定义 Task请求体、返回体设计通常对于接受 GET 方法 REST API 而言,可以直接使用 EmptyRequestBody 类作为请求体结构,方便快捷...REST Handler 设计handler 是一个 REST API 接口执行者,我们可以通过实现 handleRequest 方法来定义请求处理逻辑。...API 很简单;但是如果设计不当,阻塞了 Flink 核心流程,会造成作业不稳定甚至多组件超时退出后果。

1.3K20

使用Spring Boot设计和实现REST API

REST端点用于集成应用程序或服务器端向客户端提供服务。在本文中,将介绍基于CRUDSpringBoot来设计和实现REST端点。...设计和实施端点 端点应简短易用。例如,为了通过Id获取客户,我们可以使用/ customers / {id}这样端点。...所有这些方法都有助于设计简单REST端点,因为这是标准,所以每个人都可以理解它们。 GET GET方法用于访问资源。要根据ID获取客户记录,我们可以使用/ customers / {id}等端点。...当客户端请求无效或不存在“id”时,我们可以使用标准HTTP响应代码,而不是使用自定义正文或错误消息进行响应。HTTP响应代码是REST中用于通知处理状态标准方式。...有许多类别的代码可用,这里是关于这些代码一些信息链接。 404 - 未找到:如果数据存储中没有“id”,则使用此HTTP代码是合适

1.8K30

REST API设计指导——译自Microsoft REST API Guidelines(一)

我们经常见到,程序开发可能只用了半个月,但是接口联调却经常需要花费半个月甚至一个月左右。 如果API设计更规范更合理,在很大程度上能够提高联调效率,降低沟通成本。那么什么是好API设计?...另外,REST API书籍很多,但是完整完善实践丰富设计指导并不多见,我们有幸看到了微软团队作品——Microsoft REST API Guidelines,因此才有了此篇内容。...翻译不对之处,请多多指教。 什么是REST API?...Rest不是一种协议,也不是一种文字格式,更不是一种开发框架,它是一种系列设计约束集合:无状态性、将超媒体作为应用状态引擎,这个约束我们统称Fielding约束。...那么满足这些约束条件和原则应用程序或设计就是 RESTful。 为什么用REST API? 1.前后端分离主要以API为界做接洽,这样就会有很多APIAPI表现力更强,更加便于理解。

1.1K30

REST API设计指导——译自Microsoft REST API Guidelines(二)

所有章节我们翻译校对完成后,将会将最终定稿签入到我们Github开源库托管,方便大家查阅和校正。同时,我们推荐将此规范作为团队REST API设计指导和规范。...因此,这些准则一个目标是确保任何支持基本 HTTP 协议客户端都可以简单且一致地使用 Microsoft REST API。...一致性好处在于可以不断地积累合理规范;一致性使团队拥有统一代码、模式、文档风格和设计策略。...允许Service服务开发人员利用其他Service服务基础来开发一致 REST API 节点。 允许合作伙伴 (如非微软团队) 使用这些准则来设计自己 REST API。...本文档中使用REST”术语代指具有 RESTful风格服务,而不是仅仅遵循 REST

98710

REST API安全设计指南

1 简介 REST API 安全设计指南。...REST 全称是 Representational State Transfer,它利用传统 Web 特点,提出一个既适于客户端应用又适于服务端应用、统一架构,极大程度上统一及简化了网站架构设计。...目前,在三种主流 Web 服务实现方案中,REST 模式服务相比复杂 SOAP 和 XML-RPC 来讲,更加简洁。...越来越多 web 服务使用 REST 设计并实现,但是它缺少安全特性。 REST 全称是 Representational State Transfer,即表述性无状态传输。...这样设计就防止了数据被篡改。通过这种 API Key 设计方式加了时间戳防止部分重放,加了校验,防止数据被篡改,同时避免了传输用户名和密码,当然也会有一定开销。

1.8K20

REST API设计指导——译自Microsoft REST API Guidelines(四)

前言 前面我们说了,如果API设计更规范更合理,在很大程度上能够提高联调效率,降低沟通成本。那么什么是好API设计?这里我们不得不提到REST API。...关于REST API书籍很多,但是完整完善实践丰富设计指导并不多见,我们有幸看到了微软团队作品——Microsoft REST API Guidelines,因此才有了此篇内容。...上篇内容: REST API设计指导——译自Microsoft REST API Guidelines(三) 6 Client guidance 客户指导 To ensure the best possible...PS:国内使用这种设计模式比较少见,更倾向于是一些更通用API使用这种模式。...表请求头应该遵循微软REST API服务规范。使用这些标头不是必须,但是如果用到,那么它们必须使用一致。

1.9K50

REST API设计指导——译自Microsoft REST API Guidelines(三)

前面我们说了,如果API设计更规范更合理,在很大程度上能够提高联调效率,降低沟通成本。那么什么是好API设计?这里我们不得不提到REST API。...关于REST API书籍很多,但是完整完善实践丰富设计指导并不多见,我们有幸看到了微软团队作品——Microsoft REST API Guidelines,因此才有了此篇内容。...Microsoft REST API 准则基本要求一方面就是 服务分类必须符合以下定义。...错误不会影响整体 API 可用性。 译者注:错误可以理解成客户端参数错误,通常返回“4XX”状态码,并不影响整体API使用。...延迟定义为具体 API 被调用完成所需时长, 尽可能使用客户端调用进行测量。

1.1K30

Yarn Rest Api使用

前言 Yarn Rest Api 返回数据都是XML格式,需要解析XML。...每秒消耗内存总和 vcoreSecond string 所有的container每秒消耗核心数总和 queueUsagePercentage double 所属队列资源使用百分比 clusterUsagePercentage...double 所属集群资源使用百分比 logAggregationStatus string 日志聚合状态 unmanagedApplication boolean 未被管理应用程序 查询单个任务...appsCompleted int 完成应用程序数量 appsPending int 等待应用程序数量 appsRunning int 正在运行应用程序数量 appsFailed int 失败应用程序数量...appsKilled int 被杀死应用程序数量 reservedMB long 保留内存量(MB) availableMB long 可用内存量(MB) allocatedMB long 分配内存量

1.9K30

REST API URI 设计七准则

在了解 REST API URI 设计规则之前,让我们快速过一下我们将要讨论一些术语。 URI REST API 使用统一资源标识符(URI)来寻址资源。...在今天网站上,URI 设计范围从可以清楚地传达API资源模型,如: http://api.example.com/louvre/leonardo-da-vinci/mona-lisa 到那些难以让人理解...REST API 设计人员应该创建 URI,将 REST API 资源模型传达给潜在客户端开发人员。在这篇文章中,我将尝试为 REST API URsI 引入一套设计规则。...应鼓励 REST API 客户端使用 HTTP 提供格式选择机制,即请求 header 中 Accept 属性。...结论 当你设计 REST API 服务时,你必须注意资源,这些资源由 URI 定义。 你正在构建服务中每个资源,都将至少有一个 URI 来标识它。这个 URI 最好是有意义,并能充分描述资源。

1.3K40

API架构】REST API 设计原则和最佳实践

这是一个完整图表,可以轻松理解 REST API 原理、方法和最佳实践。 现在,让我们从每个盒子原理开始详细说明它。...最佳实践 现在,让我们换个角度来了解 REST 基本最佳实践,这是每个工程师都应该知道。 保持简单和细粒度:创建模拟系统底层应用程序域或系统数据库架构 API。...资源命名:当资源命名正确时,API 是直观且易于使用。做得不好,同样 API 会让人感觉很笨拙,并且难以使用和理解。RESTful API 适用于消费者。...为您客户设计,而不是为您数据设计。 - 复数:普遍接受做法是始终在节点名称中使用复数形式,以保持您 API URI 在所有 HTTP 方法中保持一致。...本文 https://jiagoushi.pro/principles-best-practices-rest-api-design 讨论:知识星球【首席架构师圈】或者加微信小号【cea_csa_cto

1.4K10

使用 Burp 枚举 REST API

Burp 可以测试任何 REST API 端点,前提是您可以为该端点使用普通客户端来生成正常流量。流程是通过 Burp 代理客户端流量,然后用正常方式进行测试。...除非 API 使用 Swagger 文件,否则不使用普通客户端就无法完全自动化,因为 REST API 端点没有标准格式来定义可以向它们发出请求(就像 SOAP 那样通过 WSDL 文件端点)。...因此,没有办法绕过使用真实客户端生成示例流量需要。 在某些情况下,您可以使用浏览器访问 API,但这并不总是可行。...在本教程中,我们将演示如何使用移动设备通过 Burp Suite 代理 API 流量。 您可以使用此方法映射整个 API,或定位和测试特定操作。...image.png 使用通过 Burp Proxy 工作移动应用程序,通过以下链接手动映射应用程序、提交表单并逐步完成多步骤流程。此过程将使用请求所有内容填充代理历史记录和目标站点地图。

1.1K10

13 个设计 REST API 最佳实践

了解应用于 REST 之上 HTTP 知识 如果你想要构建设计优良 REST API,了解一些关于 HTTP 协议基础知识是很有帮助,毕竟磨刀不误砍材工。...但是,就 REST API 设计本身而言,所涉及到 HTTP 知识要点大概包含以下几条: HTTP 中包含动词(或方法): GET、POST、PUT、PATCH 还有 DELETE 是最常用。...当然了,你可以将 HTTP 协议中所提供任何东西应用于 REST API 设计之中,但以上这些是比较基础,因此时刻将它们记在脑海中是很有必要。 2....避免在 URI 中使用动词 如果你理解了第 1 条最佳实践所传达意思,那么你现在就会明白不要将动词放入 REST API URI 中。...在 NodeJS 中,Restify 似乎也是一个不错选择,尽管我还没有尝试过。我强烈建议你给这些框架一个机会!它们将帮助你构建规范,优雅且设计良好 REST API 服务。

3.5K20

REST API URI七大设计原则

在了解REST API URI设计规则之前,让我们快速浏览一些我们将要讨论术语。 URIs REST API使用统一资源标识符(URI)来寻址资源。...REST API设计人员应该在考虑将REST API资源模型传达给潜在客户端开发者前提下,创造URI。在这篇文章中,我将尝试为REST API URI 引入一套设计规则。...应鼓励REST API客户端使用HTTP提供格式选择机制Accept request header。 为了是链接和调试更简单,REST API应该支持通过查询参数来支持媒体类型选择。...结论 当你在设计REST API服务时,您必须注意这些由URI定义资源。 正在构建服务中每个资源将至少有一个URI标识它。这个URI最好是有意义,且能充分描述资源。...URI名称和结构应该能够向使用者传达更清晰含义。通过遵循上述规则,您将创建一个更清晰REST API与更友好客户端。这些并不是REST规则或约束,仅仅是API增强和补充。

1.8K60

使用 pyhttptest 轻松测试 REST API

使用 pyhttptest 轻松测试 REST API 现在,我们每个人都面临着 REST API,要么开发这样服务,要么使用这样服务。...这些服务大多遵循 RESTful 原则,并使用 JSON 格式进行通信,由于其简单性,JSON 格式成为最广泛使用格式​。...pyhttptest 命令行工具,用于通过 RESTful api 进行 HTTP 测试。...这个工具通过简单三个步骤自动化测试 安装 pip install pyhttptest 用文件中最简单且广泛使用格式 JSON 描述针对 API 服务 HTTP 请求测试用例 发送 HTTP GET...为了不搞乱这些测试并打破常规,我建议在您项目根目录中创建一个名为live_tests/ 。 在新目录中,可以将所有json文件,定义了 API 测试用例文件。 通过这样做,您测试将很容易区分。

66530

使用 pyhttptest 轻松测试 REST API

现在,我们每个人都面临着 REST API,要么开发这样服务,要么使用这样服务。 此外,我们正处于微服务时尚时代,我们将业务逻辑分割成独立于每个服务小型独立服务。...这些服务大多遵循 RESTful 原则,并使用 JSON 格式进行通信,由于其简单性,JSON 格式成为最广泛使用格式​。...pyhttptest 命令行工具,用于通过 RESTful api 进行 HTTP 测试。...这个工具通过简单三个步骤自动化测试 安装 pip install pyhttptest 用文件中最简单且广泛使用格式 JSON 描述针对 API 服务 HTTP 请求测试用例 发送 HTTP...为了不搞乱这些测试并打破常规,我建议在您项目根目录中创建一个名为live_tests/ 。 在新目录中,可以将所有json文件,定义了 API 测试用例文件。 通过这样做,您测试将很容易区分。

75820
领券