写点什么

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

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

关注

评论

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

架构师日记-到底该如何搭建一个新系统 | 京东云技术团队

京东科技开发者

架构 架构设计 工程架构 企业号 7 月 PK 榜

悦数图数据库:图技术加速行业大模型智能化应用落地|WAIC 2023 精彩回顾

悦数图数据库

人工智能 图数据库 国产数据库 大模型 AIGC

云管平台和云服务器一样吗?两者有啥区别?

行云管家

云计算 云服务器

经过半年的努力,我终于成为了谷歌开发者专家(GDE)

拭心

android 面试 谷歌 GDE

DHorse v1.2.1 发布,基于k8s的发布平台

tiandizhiguai

DevOps k8s

PyTorch模型容器与AlexNet构建

timerring

PyTorch

向量数据库的崛起:从矢量搜索到深度学习 (二)

极限实验室

深度学习 数据库 搜索 极限科技

实操:用Flutter构建一个简单的微信天气预报小程序

没有用户名丶

Spring 中的父子容器是咋回事?

江南一点雨

Java spring

多元融合:流媒体传输网络的全盘解法

阿里云CloudImagine

云计算 阿里云 视频云

Kubernetes:快速入门指南

NGINX开源社区

nginx Kubernetes 微服务

人人都是架构师-清晰架构 | 京东物流技术团队

京东科技开发者

架构 架构设计 企业号 7 月 PK 榜 清晰架构

手把手教你用 NebulaGraph AI 全家桶跑图算法

NebulaGraph

人工智能 图数据库

腾讯云AI绘画好不好用,与同类产品对比有何优势?来看看ChatGPT是如何回答的

牵着蜗牛去散步

腾讯云 腾讯 腾讯云AI绘画

openEuler 22.03 LTS登录AWS Marketplace

openEuler

Linux 操作系统 AWS openEuler 资讯

再获认可!万里数据库参编中国信通院数据库研究报告 GreatSQL入选中国数据库产业图谱

GreatSQL

视频交友源码开发搭建平台用户资料功能:小功能有大用处!

山东布谷科技

软件开发 视频 实时音视频 源码搭建 交友

中航机载新技术预研与应用工程师万胜来《IoTDB 在中航机载智能云制造系统》

Apache IoTDB

时序数据库 IoTDB Apache IoTDB 中国航天

使用GPT探索学习新东西的乐趣与惊喜 💡|社区征文

Five

学习 安卓 GPT 年中技术盘点

壹米滴答助力制造业、商贸业及电商企业提升商业流通效率

联营汇聚

软件高效自动化部署:华为云部署服务CodeArts Deploy

华为云PaaS服务小智

云计算 开发者 软件开发 华为云 华为开发者大会

飞腾开发者平台上线龙蜥专区,为开发者提供硬核技术支持

OpenAnolis小助手

开源 开发者 生态 龙蜥社区 飞腾

思维导图软件哪个好?试用百款导图软件只留下这15个。

彭宏豪95

思维导图 在线协作文档 mac思维导图 效率软件 笔记工具

MyBatis实现动态SQL更新

越长大越悲伤

Java mybatis mybatis的拦截器 Mybatis Plus

2023IKCEST “一带一路” 国际大数据竞赛重磅启动!

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

性能测试的理解误区

老张

性能测试 稳定性保障

极客欢聚,燃动夏日!开发者嘉年华等你来

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨

HarmonyOS课程尝鲜计划,优享特权大礼包

HarmonyOS开发者

HarmonyOS

和鲸 × 于峻川丨以遥感领域为例,浅谈 AI for Science 带来的数据开放、跨学科协同及产学研一体

ModelWhale

遥感 AI for Science 协同科研 数据开放 产学研一体

TinyNG——开源Angular组件库,助力Web应用快速开发!

OpenTiny社区

CSS typescript angluar 前端ui组件库

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