QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

关注

评论

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

8款好用的AI流程图软件推荐,高颜值流程图轻松绘制!

彭宏豪95

人工智能 流程图 在线白板 AIGC 流程图绘制

低代码平台的探究与分析

互联网工科生

软件开发 低代码 零代码 JNPF

强化您的应用安全,从app加固开始

雪奈椰子

数字政府!3DCAT实时云渲染助推上海湾区数字孪生平台

3DCAT实时渲染

实时渲染 实时云渲染

PyTorch从精通到入门05:基于ResNet迁移学习和微调,实现图像分类

王玉川

神经网络 深度学习 迁移学习 图像分类 resnet

亚马逊云EC2哪些端口默认不能用

孤虹

亚马逊云 EC2 Amazon EC2 云服务器

C++高并发异步定时器的实现

1412

开源 定时器 异步 workflow C++

划重点!rola-ip跑路事件被同行商业互黑?丑态百出

Geek_ccdd7f

MySQL 数据库表格创建、数据插入及获取插入的 ID:Python 教程

小万哥

Python 程序员 软件 后端 开发

华为云全新上线Serverless应用中心,支持一键构建文生图应用

YG科技

低代码平台,业务开发的“银弹”

树上有只程序猿

软件开发 低代码平台 JNPF

2023年的低代码:数字化、人工智能、趋势及未来展望

快乐非自愿限量之名

软件开发 低代码 低代码开发

20行JS代码实现屏幕录制

南城FE

JavaScript 前端 浏览器 屏幕录制

PyTorch从精通到入门06:基于LSTM实现文本分类

王玉川

神经网络 深度学习 RNN 文本分类 LSTM

智能低代码洪流涌动程序员节,华为云Astro触发1024的乘法效应!

YG科技

量子计算和量子通信技术:引领潜力无限的未来

EquatorCoco

量子通信 量子计算 量子模拟

智驾未来:自主创新才是真正握住了命脉

不在线第一只蜗牛

华为 智能驾驶 小鹏汽车 问界

一文读懂 Fabarta ArcGraph 图数据库丨技术解读

Fabarta

人工智能 AI 图数据库 大模型 向量数据库

LeetCode题解:171. Excel 表列序号,哈希表,TypeScript,详细注释

Lee Chen

JavaScript LeetCode

文心一言 VS 讯飞星火 VS chatgpt (131)-- 算法导论11.2 3题

福大大架构师每日一题

福大大架构师每日一题

有什么好用的IP代理吗?要求速度快,使用方便

Geek_ccdd7f

如何使用 NFTScan NFT API 在 zkSync 网络上开发 Web3 应用

NFT Research

NFT\ NFTScan nft工具

向量数据库:释放数据潜能,重塑信息世界

熬夜磕代码、

向量数据库

另辟蹊径者 PoseiSwap:背靠潜力叙事,构建 DeFi 理想国

BlockChain先知

深入浅出了解华为云API网关的Gzip功能

YG科技

2023 IoTDB Summit 正式“官宣”,邀您见证“从数据到洞察”的未来!

Apache IoTDB

VR虚拟现实应用——原型制作

3DCAT实时渲染

虚拟现实 实时云渲染 VR虚拟现实

另辟蹊径者 PoseiSwap:背靠潜力叙事,构建 DeFi 理想国

石头财经

海外IP代理使用三年的经验之谈

Geek_ccdd7f

Linux awk命令

芯动大师

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