Agentic AI、具身智能、强化学习框架、端侧大模型……来QCon上海站,感受AI的未来! 了解详情
写点什么

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

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

关注

评论

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

Zookeeper入门基础

No Silver Bullet

zookeeper 6月月更

什么是 IPv6?IPv6有哪些优势?

wljslmz

ipv6 IP地址 网络技术 6月月更

Docker进阶(一):docker -v目录挂载

No Silver Bullet

Docker 6月月更

使用统计数据消除生活中的无谓

宇宙之一粟

贝叶斯公式 6月月更

flutter系列之:按比例缩放的AspectRatio和FractionallySizedBox

程序那些事

flutter 程序那些事 6月月更

Java—JVM II

武师叔

6月月更

力扣每日一练之数组上篇Day1

京与旧铺

6月月更

颠覆Web2 社交媒体,Liberty 计划在波卡上找到了归宿

One Block Community

区块链 科技

流计算中的死锁

Damon

6月月更

成为架构师需要点亮哪些知识树

奔向架构师

数据仓库 架构师 6月月更

稳了github star突破9k即时通讯IM开源项目OpenIM版本发布-生产环境重点关注

Geek_1ef48b

【愚公系列】2022年06月 通用职责分配原则(六)-多态原则

愚公搬代码

6月月更

Linux开发_Linux下进程编程

DS小龙哥

6月月更

【LeetCode】乘积小于 K 的子数组Java题解

Albert

LeetCode 6月月更

市场冷空气来袭,SeekTiger如何逆流而上?

鳄鱼视界

Vue-13-Vif和Vshow的区别

Python研究所

6月月更

模拟红绿灯来看GetX的定向刷新

岛上码农

flutter ios 前端 安卓 6月月更

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

爱晒太阳的大白

SDN系统方法 | 7. 叶棘网络

俞凡

架构 网络 sdn SDN系统方法

彻底搞懂 select/poll/epoll,就这篇了!

C++后台开发

网络编程 linux开发 epoll select C++开发

走近分布式缓存Memcached

No Silver Bullet

memcached 分布式缓存 6月月更

FastCorrect:语音识别快速纠错模型丨RTC Dev Meetup

声网

语音识别 RTC Dev Meetup

数据库每日一题---第16天:计算特殊奖金

知心宝贝

数据库 云计算 前端 后端 6月月更

统一返回结果

卢卡多多

返回值 6月月更

JavaScript基础语法知识遨游记

未见花闻

6月月更

uni-app进阶之模版语法与数据绑定【day7】

恒山其若陋兮

6月月更

NodeJS 读写文件 🎠

德育处主任

node.js 6月月更

vue动态路由

小恺

6月月更

开源Star10K+数据库工具Beekeeper上手体验,免费够酷值得拥有!

MegaQi

数据库管理工具 6月月更 #开源项目体验

HashSet与WeakHashMap的理解

源字节1号

GNU/Linux知识库(1)- 历史和演变

冯亮

Linux DevOps GNU

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