写点什么

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

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

关注

评论

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

面部表情识别的未来发展趋势

数据堂

浪潮海岳云原生平台技术分享丨轻松解决数据库备份痛点

inBuilder低代码平台

云原生 低代码平台

HarmonyOS NEXT新能力,一站式高效开发HarmonyOS应用

极客天地

HarmonyOS系统级推送服务,打造消息通知新体验

极客天地

基于Java开发的企业级数字化采购系统(SRM)

金陵老街

srm 采购系统 招投标系统

隆重介绍!为啥它让智能制造有了“芯”能力?

用友BIP

制造

IOS上架流程

关于低代码解放程序员这件事儿

互联网工科生

低代码 可视化开发 企业级应用程序开发 JNPF

时序数据库 TDengine SQL 查询语法规则汇总,官方教程奉上!

爱倒腾的程序员

数据库

火爆全球的AI艺术二维码到底是怎么做的?

Ricky

二维码 个性化推荐 二维码生成

面部表情识别技术的挑战与前景

数据堂

Observable设计模式简介

树上有只程序猿

Java java-API Observable

超好用的数据可视化工具——Grafana

云原生应用市场

监控 数据 Grafana 告警

面部表情识别在社交媒体中的应用

数据堂

软件测试/测试开发丨Python 内置库 多线程threading

测试人

Python 程序员 软件测试 自动化测试 测试开发

基于Pair-wise和CrossEncoder训练单塔模型

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 8 月 PK 榜

MRS大企业ERP流程实时数据湖加工最佳实践

华为云开发者联盟

大数据 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

RR有幻读问题吗?MVCC能否解决幻读?

王磊

Java Java 面试题

何时使用MongoDB而不是MySql

越长大越悲伤

MySQL 数据库 mongodb

腾讯云ES:一站式配置,TKE容器日志采集与分析就是这么简单

腾讯云大数据

ES

智慧生活的下半场,从全屋智能4.0接入未来

这不科技

华为 鸿蒙系统

软件测试/测试开发丨Python 内置库 正则表达式re

测试人

Python 正则表达式 程序员 软件测试 测试开发

软件测试/测试开发丨Python 内置库 pythonlogging

测试人

Python 程序员 软件测试 自动化测试 测试开发

数字时代的生产力工具:低代码开发平台

力软低代码开发平台

全球优秀的架构师都在关注什么?

用友BIP

架构师 数智底座

瓴羊Quick BI跻身Gartner魔力象限挑战者行列

夜雨微澜

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