写点什么

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:006328
用户头像

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

关注

评论

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

话题讨论 | 如何获得令人心动的前端offer

我是哪吒

程序员 面试 大前端 话题讨论 二月春节不断更

【得物技术】走进Web3D的世界(1) 画个立方体吧

得物技术

html html5 js WebGL 得物技术

深入了解gradle和maven的区别

程序那些事

maven Gradle 程序那些事 构建工具

马斯克说狗币牛逼,我说idea插件助你盯盘摸鱼

滑板上的老砒霜

比特币 idea插件 Android开发

产品经理 - 第三周作业

LLL777

【STM32】0.96寸OLED显示屏(7针SPI协议)软件模拟SPI

AXYZdong

硬件 stm32 2月春节不断更

Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

JavaPub

Java 面试 hashmap javapub

从“乌鸡”到5G,不仅仅是谐音梗

脑极体

抽奖小程序-活动发布用例分析及流程图

思亭

日记 2021年2月10日(周三)

Changing Lin

2月春节不断更

第四周学习心得

Trigger

极客时间 产品经理训练营

流媒体传输协议之 RTP(下篇)

阿里云CloudImagine

音视频 流媒体 rtp

ZEGO全新语音聊天室方案,2小时复刻 Clubhouse

ZEGO即构

1分钟内的Linux性能分析法

Gopher指北

Linux 后端

话题讨论 | 你是不是一个特别容易被说服的人?

石云升

话题讨论 2月春节不断更

正确面对倦怠感,提升职场战斗力

boshi

职场成长 七日更

5G点亮工业革命前,2021需要持续点亮5G

脑极体

产品训练营 - 第四周 - 作业

邹小胖

产品训练营

产品经理训练营笔记 - 业务流程与产品文档(二)

.nil?

产品经理训练营

极客大学·产品训练营·第三章作业(第四周)

二大爷

极客大学 极客大学产品经理训练营 产品训练营

UC01 用户 购买课程

克比

你真的了解 sync.Mutex吗

Leo叔叔

mutex Go Concurrency Patterns Go 语言

你看那个程序员,每年升职加薪,日赚3千

谙忆

5. Python 循环的本质就是一段代码懒得重复写

梦想橡皮擦

Python Python Monad 2月春节不断更 python入门

认识 Java 中的队列:Vector、ArrayList、CopyOnWriteArrayList、SynchronizedList

看山

Java 线程安全

第四章作业

Rui

「产品经理训练营」作业 04:知识星球加入星球用例

狷介

产品经理训练营

0期产品训练营第四周作业-学情周报用例

skylar

区分重载和重写,轻松掌握 Java 多态

飞天小牛肉

Java 程序员 面试 后端 2月春节不断更

第四周作业-核销优惠券用例

隋泽

产品经理训练营

第四周作业

Geek_72d5ab

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