QCon北京|3天沉浸式学习,跳出信息茧房。 了解详情
写点什么

Google 公开了云服务 API 设计指南

  • 2017-03-14
  • 本文字数:741 字

    阅读完需:约 2 分钟

Google 公开了用于创建 HTTP 或 RPC API 的 API 设计指南。对于创建连接 Google Cloud Endpoints 的 gRPC API 的开发人员来说,这些设计原则更值得推荐使用。

早在 2014 年,Google 在创建云服务API 其它服务API 时就开始在内部使用了这些设计指南。指南中探讨了HTTP 或RPC API 的设计。虽然HTTP API(也称为REST API)的优点是公认的,但是它们距离实用尚有时日。Google 推荐RPC 尤其是其变体 gRPC 。据 Google 说,虽然大部分的因特网 API 是 HTTP,但是通常被云服务和服务提供商内部使用的是 RPC,并在数量上远高于 HTTP API。

对于通过方法操作一个或多个资源这样的场景,Google 推荐在设计 RPC API 时使用类 REST 方法。资源(也可称为域实体)使用 URI 表示,也可以在网络路径格式后面加上唯一的名称(ID)。同一类型的资源将组织成同一集合。

使用的标准方法包括CreateDeleteGetListUpdate。对于不能映射到任一标准方法上的操作,例如数据库事务,用户也可以创建自定义方法。推荐使用较少的方法来操作尽可能多的资源。

在创建资源时,推荐执行如下步骤:

  • 确定 API 提供的资源类型。
  • 确定资源间关系。
  • 基于类型和关系确定资源的命名模式。
  • 确定资源模式。
  • 为资源附加最小的方法集。

Google 使用“语义化版本”标准命名版本,命名使用三个数字,形式为“主版本. 次版本. 补丁”。预发布版本在命名时添加了一个前缀,例如“1.0.0-alpha”。

对于资源、标准、自定义方法、标准域、错误、使用proto3 创建API 等方面,指南提供了更多细节和例子。

查看英文原文: Google Makes Public Their API Design Guide


感谢张卫滨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-14 19:006063
用户头像

发布了 227 篇内容, 共 76.9 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

Scrum Patterns:小团队(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

cat监控http请求-CatFilter

Java个体户

监控 cat

完美的,从不空口说白话,140个案例带你深入理解微服务

Java架构师迁哥

JVM-技术专题-MAT解析OOM问题

洛神灬殇

JVM

颜色值JavaScript换算(HSV、RGB、十六进制颜色码)

空城机

JavaScript 大前端 颜色值换算

Python模拟MOBA手游(三)

Bob

Python Python 游戏编程 4月日更

「MySQL」深入理解事务的来龙去脉

学Java关注我

Java 编程 架构 程序人生 软件架构

树莓派安装pytorch

IT蜗壳-Tango

4月日更

《中寰卫星导航项目管理部负责人卜钢:智能网联行业的问题与前景》(采访提纲):

谙忆

升级版数字人民币试点在深启动 这次有啥不一样?

CECBC

数字人民币

Coinbase上市在即,这里有你想知道的一切

CECBC

比特币

三分钟热度的你,不会得到你想要的结果

小天同学

坚持 日常感悟 4月日更 专心 个人思考

一个可递归遍历的Vue树型组件

空城机

JavaScript vue.js 大前端 4月日更

从程序员角度看湖南电信网络全崩,如何防范服务器被攻击以及解决方案

北游学Java

Java 网络安全 网络 服务器

读scss/sass实例项目带你入门

devpoint

SASS scss css预处理器

《分布式系统设计》(1) 从程序思维到系统思维

陈皓07

InheritableThreadLocal源码解析,子线程如何获取父线程的本地变量?

徐同学呀

ThreadLocal Java源码

重读《重构2》- 内联函数

顿晓

重构 4月日更

Java编辑器

ベ布小禅

4月日更

《分布式系统设计》(2) 关键概念和基本问题

陈皓07

感谢Github帮我斩获了8家大厂Offer

Java架构师迁哥

Spark测试用例生成apache iceberg结果

聚变

大数据 iceberg

微信被单删或拉黑?这两个免打扰检测方法你要知道。

彭宏豪95

微信 工具 社交 数据备份 4月日更

升级JDK到1.8笔记

风翱

jdk8 4月日更

Linux 下的Zabbix Agent 安装

耳东@Erdong

Linux zabbix 4月日更

不确定的海浪中,更需要数字化转型的定海神针

脑极体

用吃解决生活问题

石云升

读书笔记 好好吃饭 28天写作 4月日更

计算机原理学习笔记 Day4

穿过生命散发芬芳

计算机原理 4月日更

余额宝|三年开发|一二三四+HR面面经,已拿offer|

Java架构师迁哥

真假敏捷教练

escray

面试 面经 4月日更

你看起来很美味?独家揭露视频推荐系统AI秘方

脑极体

Google公开了云服务API设计指南_REST_Abel Avram_InfoQ精选文章