写点什么

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

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

关注

评论

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

当千行万业的轨道,换上智能云网的高铁

脑极体

什么是KMP算法(详解)

赖猫

c++ Linux KMP

LeetCode题解:51. N 皇后,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

SpringBoot整合Mybatis-Plus 实战之动态SQL,Mybatis最拿得出手的功能之一

比伯

Java 编程 架构 面试 计算机

数字货币管理三大新模式

CECBC

数字货币

Spring AOP核心类解析,这是最全的一篇了!!

冰河

spring aop ioc 注解驱动 切面编程

稳坐开发领域霸主之位,揭秘C语言无可取代的几大原因!

华为云开发者联盟

c rust Go 语言

自己搭建服务器需要多少钱?

德胜网络-阳

一万字详解 Redis Cluster Gossip 协议

程序员历小冰

redis 分布式 redis cluster

JVM调优不知道怎么回答,阿里总结四大模块,学不会就背过来

996小迁

Java 架构 面试 调优

区块链电子发票应用落地,区块链电子发票系统开发

13530558032

年轻人会用C++实现一种协程吗?

ShenDu_Linux

Linux 程序员 多线程 协程 什么是多线程

3本书免费学习数据科学与统计学

计算机与AI

统计学

2020亚马逊“黑五”再次成为亚马逊史上最大的年终全球狂欢

爱极客侠

江西吉安:一个上了区块链柚子的真情告白

CECBC

区块链 蜜柚

“黑五”前夜的裁员:无接触配送大趋势为什么都带不动亚马逊无人机?

脑极体

华为云&跟谁学|华为云API入门学习赛·AI人脸识别 未来工程师梦想的起点

DT极客

AOT星辰生态系统APP开发|AOT星辰生态软件开发

系统开发 现成系统

区块链版权应用搭建,区块链版权存证平台开发

13530558032

《穿越数据的迷宫》笔记:第 2章 数据管理的挑战

方志

数据治理

周小川深度解读:DC/EP和数字人民币e-CNY

CECBC

数字人民币

架构师训练营 -week11-作业

大刘

极客大学架构师训练营

面对日益严峻的网络安全问题,CDN可以做什么?

阿里云Edge Plus

线程模型Reactor/Proactor的区别

Linux服务器开发

reactor 线程 多线程 Linux服务器开发 Proactor

我理解的信息化、数字化、数智化

boshi

数字化 数据智能 信息化

将项目发布到 Homebrew 官方仓库

郭旭东

macos brew homebrew

区块链商品追溯平台开发,区块链防伪追溯系统搭建

13530558032

构师训练营 - 第六周课后练习

joshuamai

构师训练营 - 第六周学习总结

joshuamai

「五大常用算法」一文搞懂分治算法

bigsai

算法 分治算法;

框架设计

raox

极客大学架构师训练营

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