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

HTTP API 设计指南HTTP API 设计指南

HTTP API 设计指南 前言 这篇指南介绍描述了 HTTP+JSON API 的一种设计模式,最初摘录整理自 Heroku 平台的 API 设计指引 Heroku 平台 API 指引。...这篇指南除了详细介绍现有的 API 外,Heroku 将来新加入的内部 API 也会符合这种设计模式,我们希望非 Heroku 员工的API设计者也能感兴趣。...我们的目标是保持一致性,专注业务逻辑同时避免过度设计。我们一直试图找出一种良好的、一致的、显而易见的 API 设计方法,而并不是所谓的"最终/理想模式"。...我们假设你熟悉基本的 HTTP+JSON API 设计方法,所以本篇指南并不包含所有的 API 设计基础。...强制头信息 Accept 中提供版本号 制定版本并在版本之间平缓过渡对于设计维护一套API是个巨大的挑战。所以,最好在设计之初就使用一些方法来预防可能会遇到的问题。

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

RESTful API 设计指南

这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。...今天,我将介绍RESTful API设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(1,2)。 ? 一、协议 API与用户的通信协议,总是使用HTTPs协议。...举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物雇员的信息,则它的路径应该设计成下面这样。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...Hypermedia API设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

1.1K50

RESTful API 设计指南

SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计实现...目的:ClientServer端进一步解耦。 一、协议 API与用户的通信协议,总是使用HTTPs协议。...举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物雇员的信息,则它的路径应该设计成下面这样。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...Hypermedia API设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

87450

RESTful API 设计指南

这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。...今天,我将介绍RESTful API设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(1,2)。 一、协议 API与用户的通信协议,总是使用HTTPs协议。...举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物雇员的信息,则它的路径应该设计成下面这样。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...Hypermedia API设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

63010

RESTful API 设计指南

这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。...今天,我将介绍RESTful API设计细节,探讨如何设计一套合理、好用的API。我的主要参考了两篇文章(1,2)。 一、协议 API与用户的通信协议,总是使用HTTPs协议。...举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物雇员的信息,则它的路径应该设计成下面这样。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...Hypermedia API设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

77040

RESTful API设计--指南

毫无例外,所有服务接口都必须从头开始设计,才能外部化。也就是说,团队必须进行规划设计,以便能够向外部世界的开发人员公开接口。没有例外。 任何不这样做的人都会被解雇。...---- RESTful api设计原则 现在,让我们来了解在设计 RESTful api 时应该遵循的原则。 保持精简 我们需要确保 API 的基本 URL 是简单的。...例如,如果我们想为产品设计 api,它应该是这样设计的: /products /products/12345 第一个 API 是获取所有产品,第二个 API 是获取特定产品。...使用分页 当您公开可能返回大量数据的 API 时,必须使用分页,如果没有进行适当的负载平衡,消费者可能最终会关闭服务。我们需要始终记住,API 设计应该是完整的证明傻瓜证明。...这里建议使用 limit offset.例如:, /products?limit=25&offset=50. 还建议保留默认限制默认偏移。 支持的格式 选择 API 的响应方式也很重要。

1.7K50

Swift API 设计指南(上)

本文翻译自苹果官方文档:Swift API Design Guidelines,如有错漏,欢迎指出。 基本准则 在调用处表意足够明确是你最重要的目的。...像方法属性这样的实体(Entities)只声明一次,但却会被重复调用,所以你需要设计好你的 API 让它们可以被明确简洁的调用。...当我们评价某个设计的时候,往往需要查看它的使用场景以确保它在实际环境中足够明确,而不仅仅是看一眼它的声明。 ** 明确比简洁更重要。...在 Swift 中,简洁只是强类型系统其它可以减少样板代码的特性所带来的一个副作用(side-effect)。 为每个声明编写文档注释。写文档时的感悟会对你的设计产生重大影响,所以不要搁置它。..., andBlue: 128) let newPart = factory.makeWidget(havingGearCount: 42, andSpindleCount: 14) 事实上,本指南包含了参数标签

63430

RESTFUL API 安全设计指南

key=dfkaj134,一般的处理流程如下: 一个简单的设计示例如下: client端: ? server端: ?...这样的设计就防止了数据被篡改。 通过这种API Key的设计方式加了时间戳防止了部分重放,加了校验,防止了数据被篡改,同时避免了传输用户名密码,当然了也会有一定的开销。...使用配置都比较复杂,这里就不涉及了。...它的目标是提供一个自由、 开放,健全的框架用于缓存优化PHP的中间代码。在返回时设置X-Rate-Limit-Reset:当前时间段剩余秒数,APC的示例代码如下: #!...有一个统一的出错接口,对于400系列500系列的错误都有相应的错误码相关消息提示,如401:未授权;403:已经鉴权,但是没有相应权限。

1.5K20

Flink REST API设计指南

因此,我们在新增接口时,一定要遵循一定的法则,以确保整体的可用可靠性。...非阻塞的 Flink REST API 设计要点关于拓展 Flink REST API 的方法,我们可以在 Flink 官网文档、各类技术社区文章中得到详细的指引,因而这里不再赘述基础的细节,而是更侧重于讲解遇到的一些常见的问题和解决方案...REST Handler 设计handler 是一个 REST API 接口的执行者,我们可以通过实现 handleRequest 方法来定义请求的处理逻辑。...JobManager TaskManager 的通讯机制与超时处理Flink 使用 Akka 的 Actor 模型来实现 JobManager 与 TaskManager 的命令下发与执行。...很简单;但是如果设计不当,阻塞了 Flink 的核心流程,会造成作业不稳定甚至多组件超时退出的后果。

1.2K20

如何设计安全Web API指南

在数字化时代,Web API成为了连接现代网络应用和服务的关键枢纽。随着网络安全威胁的日益增加,设计一个安全的Web API对于保护敏感数据确保只有授权用户系统才能访问您的服务至关重要。...本文将详细介绍如何设计一个安全的Web API。 使用HTTPS 数据传输加密 HTTPS: 使用HTTPS而不是HTTP来加密客户端和服务器之间的数据传输。这可以防止中间人攻击窃听。...API节流速率限制 控制流量 API节流速率限制: 实现API节流速率限制以控制来自单个用户或IP地址的流量,防止滥用拒绝服务攻击。...考虑使用API网关 管理API流量 API网关: 使用API网关来管理、监控保护API流量。网关可以提供附加功能,如缓存、速率限制分析。...结论 设计安全的Web API涉及多层安全措施,从传输层加密到应用层的输入验证、认证访问控制。定期更新安全实践至关重要,以跟上不断发展的威胁。

15510

Django API开发: 使用PythonDjango构建web APIs

Django for API: Build web APIs With Python & Django 中文翻译版:Django API开发: 使用PythonDjango构建web APIs Django...for api是一个基于项目的指南,指导您使用DjangoDjango REST框架构建现代API。...DjangoDjango REST Framework的结合是构建Web API的最流行可自定义的方法之一,被世界上许多大型科技公司(包括Instagram,Mozilla,PinterestBitbucket...我自己学习如何构建Web API的旅程令人沮丧...而且我已经对Django足够了解,因此可以写一本书! 本书是我希望以Django REST Framework开头的指南。...第1章首先简要介绍Web APIHTTP协议。 在第2章中,我们将建立一个图书馆书网站,然后向其中添加一个API,以回顾传统DjangoDjango REST Framework之间的区别。

2.8K21

​Java API设计实战指南:打造稳健、用户友好的API

本文将深入探讨在Java中设计有效API的原则,并着重介绍RESTful设计原则、版本控制策略以及文档实践。...Java中的RESTful API原则在Java中设计API时,采用RESTful体系结构风格可以显著提升web服务的可扩展性、可维护性性能。...Swagger示例:Swagger或OpenAPI提供了一组工具,用于使用OpenAPI规范设计API。它提供了从API设计到文档生成的一系列功能。...结论在本篇文章中,我们深入探讨了在Java中设计出高效且用户友好的API的关键策略。从遵循RESTful原则采用合适的版本控制策略,到详尽文档的重要性,这些实践构筑了强大API开发的基石。...这些原则突显了清晰性、灵活性以及以用户为核心的设计理念,引导开发者打造不仅在技术上合理,而且易于使用整合的API

24220

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

但是,我主要接触的是REST,这是一种基于资源的APIWeb服务开发架构风格。在我的职业生涯中有很大一部分时间都参与了构建、设计使用API 的项目。...因此我决定写篇文章分享一下,在设计 REST API 时的最佳实践。以下是关于设计优秀REST API 的一些建议、提示指导,帮助您让消费者(以及开发人员)满意。 1...., 4xx 表示客户端错误 5xx 表示服务器错误 当然你还可以使用其他 HTTP 协议提供给 REST API 设计的功能 ,但这些都必须牢记在心里。...这种方法的问题在于,通常情况下,框架并不是针对构建REST API服务器而设计的。例如,FlaskExpress都是两个非常灵活的框架,但它们并没有专门为帮助您构建REST API而制定。...如果您更喜欢使用Django,那么首选就是Django REST框架。虽然它不如其他框架直观,但功能非常强大。在Node中,Restify似乎也是一个很好的选择,尽管我还没有尝试过。

30540

Kubernetes Gateway API 深入解读落地指南

Gateway API 的意义价值:作为 Kubernetes 官方项目,Gateway API 能够更好地与 Kubernetes 本身集成,有更强的可靠性稳定性。...服务网格、API网关以及各大云服务商都将是Gateway API的重点生态。未来规划完善功能稳定性:继续完善 Gateway API 的功能稳定性,以确保其能够应对不同场景的需求。...完善文档社区支持:完善 Gateway API 的文档社区支持,以帮助用户更好地使用和了解该项目。...生产指南Gateway API使用到生产需要考虑易用性、可管理性稳定性因素:易用性:Gateway API扩展了很多配置内容,如果直接写yaml上手难度较大,而且容易出错,所以需要有一个基于UI的管理工具...基于以上因素,在生产环境需要Gateway API的管理工具,当前相对成熟的工具可以选择Rainbond,它运行Kubernetes基础上,它也是平台工程的设计思路,提供web界面管理Kubernetes

89410
领券