首页
学习
活动
专区
工具
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
您找到你想要的搜索结果了吗?
是的
没有找到

API如何设计

在之前《应对变化》[1]中提到模块之间合的策略:缩小依赖范围,API是两个模块间唯一的联结点 ? 怎么才是一个好的API设计呢?...设计成: systemB.receive(long userId,String username,Object data); 一切都是行云流水,大家都很happy,如期发布上线 爱情总是在转角处遇到,上线完...系统A:太麻烦了,你自己取了,想怎么控制就怎么控制 系统B:你是不爱我了 系统A:你怎么就不理解我呢 ---- 温习一下一个好的API设计要求: 缩小依赖范围,就是要精简APIAPI要稳定得站在需求角度...因为任何一项知识的变化都会导致双方变化2.API也要高内聚,不应强迫API的客户依赖不需要的东西3.站在what角度;而不是how,怎么技术实现的角度 上面示例的问题就在系统B接受数据api: systemB.receive...,但回头复盘,发现了很多理论缺乏,惯性思维使然造成的不合理,难维护,难扩展的设计 由此看出,日常的CRUD并不是没有技术含量,而是我们有没有深刻认知 References [1] 《应对变化》: http

50610

API Gateway 设计

1.1 什么是API网关 API网关可以看做系统与外界联通的入口,我们可以在网关进行处理一些非业务逻辑的逻辑,比如权限验证,监控,缓存,请求路由等等。...1.2 为什么需要API网关 RPC协议转成HTTP。...1.3 统一API网关 统一的API网关不仅有API网关的所有的特点,还有下面几个好处: 统一技术组件升级 在公司中如果有某个技术组件需要升级,那么是需要和每个业务线沟通,通常几个月都搞不定。...在Netflix Zuul中也应用了这种模式,如下图所示: image 这种模式在网关的设计中我们可以借鉴到自己的网关设计: preFilters:前置过滤器,用来处理一些公共的业务,比如统一鉴权,统一限流...1.基本流控:基于API的QPS做限流。2.运营流控:支持APP流量包,APP+API+USER的流控33.大促流控:APP访问API的权重流控。

45500

API 设计评审已死,API 设计评审万岁

更为重要的是,在大部分开发工作完成之前便确定 API 设计,可以在很大程度上避免在最后一刻才发现问题,从而影响交付时间(通常被称作是 设计优先方法)。...提前做好这些功课可以避免在 API 设计的过程中因命名而产生冲突。与相关的利益相关者一同定义每个领域中的共通术语,确保 API 设计的广泛使用和了解。...在组织上下设立 API 设计审查员 虽然应设置一个 API 启用的团队负责策划这些设计标准并促进社区的发展,但也应在每个功能区或领域中启用权威。...实施 API 设计审查 在达成上述的先决条件后,API 设计审核也就基本完成了。对领域驱动的中小企业而言,设计审查通常可被整合到进行中的设计工作内。...更重要的是密切关注 API 设计审查的周期。随着时间的推移,更多去中心化的中小企业将对现有标准和新标准的采用更加熟悉,API 设计审查频率也应明显地下降。

11020

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

但是,我主要接触的是REST,这是一种基于资源的API和Web服务开发架构风格。在我的职业生涯中有很大一部分时间都参与了构建、设计和使用API 的项目。...因此我决定写篇文章分享一下,在设计 REST API 时的最佳实践。以下是关于设计优秀REST API 的一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....学习 HTTP 基础知识 如果你想构建一个设计良好的REST API,那么你必须了解HTTP协议的基本知识。我坚信这将帮助你做出正确的设计选择。...Mozilla Developer Network文档上关于HTTP概述是一个相当全面的参考资料,尽管如此,在REST API设计方面,以下是将HTTP应用于RESTful设计的简要说明: HTTP具有动词...这种设计真的很糟糕,因为它破坏了API与其使用者之间的信任关系,你会担心API可能在欺骗你。所有这些都极不符合RESTful风格。那么你应该怎么做呢?

28440

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的网址列表。

61310

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的网址列表。

76040

API设计最佳实践

良好设计API = 快乐的程序员 ?。 应用程序接口(API)是一种接口,它让应用程序可以轻松地使用另一个应用程序的数据和资源,API 对于一个产品或公司的成功至关重要。...如果没有它,你将不得不设计和开发自己的地图数据库。这样的话,在地图上显示一个位置需要花费多少时间? 为什么要使用 API?...在大多数实际场景中,数据模型 已经存在,但由于我们将讨论 API 设计最佳实践,我将从头开始说起。...数据建模与结构化 以 API 为中心对您的数据进行建模,是设计易于创建、维护和更新 API 的第一步 在设计 API 时,尽量考虑使用通用的术语,而不是使用内部的复杂业务术语,因为这些术语在公司外可能不为人所知...这些就是设计 API 的最佳实践。它让你的 API 更健壮、简洁并易于与其他应用程序集成。 请记住。 良好设计API = 快乐的程序员 ?。

77120

Restful API 设计指北

订阅本站 近期学习了Go语言,跟着七米在学习,学习过程中了解到了 API 的一个设计规范,也就是本文要讲的 Restful API 设计模式,现在互联网处在前后端分离的阶段,API 的书写及规范化是非常重要的...,针对于 API 中 Restful API设计比较规范的是 Github API,可以直接访问他们的 https://api.github.com 直接查看 Github 针对与公共接口的链接及使用方法...1、使用 HTTPS 协议 这个协议使用本身与这个 API 设计标准没有什么直接联系,使用 HTTPS 协议主要目的是将用户客户端与 API 服务器链接过程中保证其数据的安全性 ?。...即使我们遵循了上面提到的所有规范,设计API 非常优雅,用户还是不知道怎么使用我们的 API。最后一步,但非常重要的一步是:为你的 API 编写优秀的文档。...参考资料 RESTful API 设计指南 – 阮一峰 跟着 Github 学习 Restful HTTP API 设计 REST API Tutorial Representational State

67720

API接口TOKEN设计

首先需要知道API是什么? API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。...加密密钥'为私有的加密密钥,手机端需要在服务端注册一个“接口使用者”账号后,系统会分配一个账号及密码,数据表设计参考如下: 字段名及字段类型 client_id varchar(20) 客户端ID client_secret...($client_id); //服务端重新生成一个api_token $api_token_server = md5($module ....$client_secret); //客户端传过来的api_token与服务端生成的api_token进行校对,如果不相等,则表示验证失败 if ($api_token !...user_token = md5('用户的uid' + 'Unix时间戳') = etye0fgkgk4ca2ttdsl0ae9a5dd77471fgf 服务端用数据表维护user_token的状态,表设计如下

1.3K30

RESTful API 设计指南

SOAP(Simple Object Access protocol,简单对象访问协议)以及XML-RPC更加简单明了,无论是对URL的处理还是对Payload的编码,REST都倾向于用更加简单轻量的方法设计和实现...值得注意的是REST并没有一个明确的标准,而更像是一种设计的风格。 定义:简单来说REST是一种系统架构设计风格(而非标准),一种分布式系统的应用层解决方案。...举例来说,有一个API提供动物园(zoo)的信息,还包括各种动物和雇员的信息,则它的路径应该设计成下面这样。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...Hypermedia API设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会得到一个所有可用API的网址列表。

84750

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

API接口TOKEN设计

首先需要知道API是什么? API(Application Programming Interface)即应用程序接口。你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。...加密密钥'为私有的加密密钥,手机端需要在服务端注册一个“接口使用者”账号后,系统会分配一个账号及密码,数据表设计参考如下: 字段名及字段类型 client_id varchar(20) 客户端ID client_secret...($client_id); //服务端重新生成一个api_token $api_token_server = md5($module ....$client_secret); //客户端传过来的api_token与服务端生成的api_token进行校对,如果不相等,则表示验证失败 if ($api_token !...user_token = md5('用户的uid' + 'Unix时间戳') = etye0fgkgk4ca2ttdsl0ae9a5dd77471fgf 服务端用数据表维护user_token的状态,表设计如下

5.1K140
领券