写点什么

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

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

关注

评论

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

《网络是怎么样连接的》读书笔记 - 认识网络基础概念(一)

懒时小窝

网络编程

测试开发【Mock平台】07开发:项目管理(三)组件Modal和Form讲解,并利用其实现添加功能

MegaQi

测试平台开发教程 6月月更 测试技术干货

千万级学生管理系统考试试卷存储方案

Pengfei

千万级学生管理系统的考试试卷存储方案

joak

力扣每日一练之数组下篇Day3

京与旧铺

6月月更

【LeetCode】兼具大小写的最好英文字母Java题解

Albert

LeetCode 6月月更

网上教学 助力战疫 | 社区征文

yu

原创 原创保护 初夏征文

千万学生管理系统试卷存储方案

intelamd

Java 应用压测性能问题定位经验分享

阿里巴巴云原生

阿里云 云原生 压测 性能压测

Navicat Premium 15 永久破解激活工具及安装教程(亲测可用)

Geek甜甜

数据库 程序员 工具 navicat

TypeScript中你可能会忽略的细节

真嗣

typescript 前端

如何设计业务高性能高可用存储架构 - 作业

阿拉阿拉幽幽

数据洞察力

奔向架构师

数据资产 6月月更

OKALEIDO:NFT交易平台的发展趋势是什么?

股市老人

架构实战营模块 4 作业

Naoki

架构实战营

详解python的运行方式

左手の明天

Python 运行原理

关于分布式系统一致性

Joseph295

架构训练营模块四作业

融冰

架构实战营|模块4

KDA

#架构实战营

NFT新范式,OKALEIDO创新NFT聚合交易生态

EOSdreamer111

异步任务处理系统,如何解决业务长耗时、高并发难题?

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算 FC

GNU/Linux知识库(3)- 命令行和包管理

冯亮

Linux DevOps GNU

NFT新范式,OKALEIDO创新NFT聚合交易生态

鳄鱼视界

读书笔记之《网络是怎样连接的》

蔡农曰

开发 网络 计算机 后端开发

33岁程序员的年中总结

王磊

年中总结

简约而不简单的Kanban方法

Bruce Talk

Kanban 敏捷开发 Agile

《清单革命》:如何忙而不乱?

郭明

读书笔记

Java—虚拟机

武师叔

6月月更

又回到最初的起点,记忆中你青涩的脸,我们终于来到了这一天

百思不得小赵

阅读 毕业生 6月月更

Prometheus、Grafana安装配置linux服务器监控dashboard

橙子猿

golang Prometheus #Grafana

vue全局守卫

小恺

6月月更

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