Google公开了云服务API设计指南

jopen 8年前
   <p style="text-align: center;"><a href="/misc/goto?guid=4958984127719761301" title="Google"><img alt="Google公开了云服务API设计指南" src="https://simg.open-open.com/show/1398f098be05592a1001a5275df0b684.png" /></a></p>    <p>英文原文: <a href="/misc/goto?guid=4959002771973945743">Google Makes Public Their API Design Guide</a></p>    <p>Google 公开了用于创建 HTTP 或 RPC API 的 <a href="/misc/goto?guid=4959002772069530896">API 设计指南</a>。对于创建连接 <a href="/misc/goto?guid=4959002772157357785">Google Cloud Endpoints</a> 的 gRPC API 的开发人员来说,这些设计原则更值得推荐使用。</p>    <p>早在 2014 年,Google 在创建<a href="/misc/goto?guid=4959002772252907623">云服务 API</a> 或<a href="/misc/goto?guid=4959002772331719652">其它服务 API</a> 时就开始在内部使用了这些设计指南。指南中探讨了 HTTP 或 RPC API 的设计。虽然 HTTP API(也称为 REST API)的优点是公认的,但是它们距离实用尚有时日。Google 推荐 RPC 尤其是其变体 <a href="/misc/goto?guid=4959002772419022699">gRPC</a>。据 Google 说,虽然大部分的因特网 API 是 HTTP,但是通常被云服务和服务提供商内部使用的是 RPC,并在数量上远高于 HTTP API。</p>    <p>对于通过方法操作一个或多个资源这样的场景,Google 推荐在设计 RPC API 时使用类 REST 方法。资源(也可称为域实体)使用 <a href="/misc/goto?guid=4959002772521756754">URI</a> 表示,也可以在网络路径格式后面加上唯一的名称(ID)。同一类型的资源将组织成同一集合。</p>    <p>使用的标准方法包括<code>Create</code>、<code>Delete</code>、<code>Get</code>、<code>List</code>和<code>Update</code>。对于不能映射到任一标准方法上的操作,例如数据库事务,用户也可以创建自定义方法。推荐使用较少的方法来操作尽可能多的资源。</p>    <p>在创建资源时,推荐执行如下步骤:</p>    <ul>     <li>确定 API 提供的资源类型。</li>     <li>确定资源间关系。</li>     <li>基于类型和关系确定资源的命名模式。</li>     <li>确定资源模式。</li>     <li>为资源附加最小的方法集。</li>    </ul>    <p>Google 使用“<a href="/misc/goto?guid=4958529568265783841">语义化版本</a>”标准命名版本,命名使用三个数字,形式为“主版本.次版本.补丁”。预发布版本在命名时添加了一个前缀,例如“1.0.0-alpha”。</p>    <p>对于资源、标准、自定义方法、标准域、错误、使用 proto3 创建 API 等方面,指南提供了更多细节和例子。</p>    <p>来自: <a href="/misc/goto?guid=4959002772645471068" id="link_source2">InfoQ</a></p>