APIs e Microsserviços

23 mar, 2017

Google disponibiliza Guia de Design de API

Publicidade

O Google disponibilizou recentemente um Guia de Design de API para a criação de APIs HTTP ou RPC. Esses princípios de design são recomendados especialmente para desenvolvedores que criam gRPC APIs conectando-se aos endpoints do Google Cloud.

O Google utiliza esse guia desde 2014, ao criar o cloud ou outras APIs de serviços. O material discute o design de APIs HTTP ou RPC. Embora reconheça os méritos das APIs HTTP (também chamadas APIs REST), mencionando que há momentos em que elas fazem sentido para serem usadas, o Google prefere RPC e especialmente a variante gRPC. Enquanto a maioria das APIs da Internet são HTTP, as usadas internamente pelo cloud e provedores de serviços são geralmente RPC, superando amplamente as APIs HTTP, de acordo com o Google.

A empresa recomenda uma abordagem baseada no REST para projetar APIs RPC, com o princípio de um ou mais recursos que são operados com métodos. Recursos, também conhecidos como entidades, são identificados através de URIs ou nomes únicos (IDs) seguindo um formato de caminho de rede. Recursos do mesmo tipo podem ser agrupados em coleções.

[awprm urls=https://imasters.com.br/noticia/nova-api-de-machine-learning-do-google-reconhece-objetos-em-videos/,https://imasters.com.br/noticia/google-lanca-primeiro-developer-preview-do-android-o/]

Segundo o site InfoQ, os métodos padrão são Create, Delete, Get, List, e Update, e é possível criar métodos personalizados para operações que não podem ser mapeadas para um dos padrões, como transações de bancos de dados. Recomenda-se o uso de tantos recursos quanto necessário com um pequeno número de métodos.

Para criar recursos, é recomendável: determinar quais tipos de recursos uma API fornece e os relacionamentos entre os recursos; decidir o esquema de nomes dos recursos com base nos tipos e relações, e os esquemas dos recursos; e adicionar o mínimo de métodos para os recursos.

Para o controle de versão, o Google usa versões semânticas representadas por três números como em MAJOR.MINOR.PATCH. Já uma versão de pré-lançamento é indicada com um sufixo, como 1.0.0-alfa.

Além disso, o guia traz mais detalhes e exemplos em recursos, padrões e métodos customizados, padrão de campos, erros, criação de APIs com o proto3 entre outros.