Vista geral do design de APIs

Esta página aplica-se ao Apigee e ao Apigee Hybrid.

Veja a documentação do Apigee Edge.

Na fase de design, define os requisitos da sua API. Enquanto criador de APIs, planeia os serviços que quer expor aos consumidores e cria APIs para aceder a esses serviços. Crie um dos seguintes documentos para captar os requisitos da API:

  • Um documento OpenAPI
  • Um esquema GraphQL

As secções seguintes fornecem mais informações sobre os documentos OpenAPI e GraphQL, e o papel que desempenham no ciclo de vida da sua API. Para uma comparação das duas opções de design de API, consulte a comparação entre REST e GraphQL nesta publicação no blogue.

O que é a especificação OpenAPI?


"A OpenAPI Initiative (OAI) está focada na criação, evolução e promoção de um formato de descrição de API neutro para fornecedores com base na especificação Swagger." Para mais informações sobre a OpenAPI Initiative, consulte https://openapis.org.

Um documento OpenAPI usa um formato padrão para descrever uma API RESTful. Escrito no formato JSON ou YAML, um documento OpenAPI é legível por computador, mas também é fácil de ler e compreender para os humanos. A especificação OpenAPI permite a descrição formal de elementos de uma API, como o respetivo caminho base, caminhos e verbos, cabeçalhos, parâmetros de consulta, tipos de conteúdo, modelos de resposta e muito mais. Além disso, um documento OpenAPI é usado frequentemente para gerar documentação da API.

Segue-se um fragmento de um documento OpenAPI que descreve o exemplo simples "Olá, mundo" do Apigee. Para mais informações, consulte a especificação OpenAPI no GitHub.

openapi: 3.0.0 info:   description: OpenAPI Specification for the Apigee mock target service endpoint.   version: 1.0.0   title: Mock Target API paths:   /:     get:       summary: View personalized greeting       operationId: View a personalized greeting       description: View a personalized greeting for the specified or guest user.       parameters:         - name: user           in: query           description: Your user name.           required: false           schema:             type: string       responses:         "200":           description: Success   /help:     get:       summary: Get help       operationId: Get help       description: View help information about available resources in HTML format.       responses:         "200":           description: Success ... 

Existem muitas excelentes fontes de informações sobre as especificações da OpenAPI. Um bom ponto de partida é o site da OpenAPI Initiative, onde encontra vistas gerais, blogs e links para a especificação OpenAPI. Consulte a especificação para ver descrições detalhadas dos elementos do esquema e dos tipos de dados.

Existem vários exemplos de documentos OpenAPI em JSON e YAML que pode transferir do repositório da especificação OpenAPI.

O que é um esquema GraphQL?

Um esquema GraphQL descreve os dados disponíveis na sua API para uma consulta de um cliente.

Seguem-se algumas vantagens da utilização do GraphQL:

  • Um único ponto final fornece acesso a todos os campos para uma determinada operação
  • A linguagem de consulta avançada, denominada linguagem de definição de esquemas, permite-lhe aceder exatamente aos dados de que precisa, evitando a obtenção excessiva ou insuficiente de dados
  • O processamento de consultas ocorre em paralelo

Para mais informações sobre o GraphQL, consulte graphql.org.

Segue-se um exemplo de um esquema GraphQL que define o ponto de entrada de dados (tipo de consulta), as operações de escrita disponíveis (tipo de mutação) e os tipos de dados.

type Query {   Greeting: String   students: [Student] } type Mutation {   createStudent(firstName: String!, lastName: String!): Student! } type Subscription {   newStudent: Student! } type Student {   Id: ID!   firstName: String!   lastName: String!   password: String!   collegeId: String! } 

Pode consultar o esquema GraphQL para devolver os dados exatos de que precisa como um payload JSON.

Consulta e resultados do GraphQL

O que acontece se modificar um documento?

Cada documento OpenAPI ou GraphQL serve como fonte de informações fidedignas ao longo do ciclo de vida da API. O mesmo documento é usado em cada fase do ciclo de vida da API, desde o desenvolvimento à publicação e à monitorização.

Quando edita ou elimina um documento, isso tem impacto no futuro:

  • Se editar um documento, tem de editar manualmente os artefactos relacionados, incluindo o proxy de API e quaisquer produtos de API que exponham os respetivos recursos, e regenerar a documentação de referência da API para refletir as alterações implementadas no documento.
  • Se eliminar um documento, tem de eliminar manualmente os artefactos relacionados, incluindo o proxy de API, e editar todos os produtos de API para eliminar os recursos relacionados, bem como regenerar a documentação de referência da API para refletir a remoção do documento e dos respetivos recursos.

O que acontece quando crio um proxy de API a partir de um documento OpenAPI?

Pode criar os seus proxies de API a partir dos seus documentos OpenAPI. Com apenas alguns cliques, tem um proxy de API com os caminhos, os parâmetros, os fluxos condicionais e os pontos finais de destino gerados automaticamente. Em seguida, pode adicionar funcionalidades como segurança OAuth, limitação de taxa e colocação em cache.

Pode criar um proxy de API a partir de um documento OpenAPI através do assistente de criação de proxies, conforme descrito no artigo Usar especificações OpenAPI para gerar proxies. Para uma experiência prática, siga o tutorial Criar um proxy de API a partir de uma especificação OpenAPI.

Quando publica a sua API, tira uma captura de ecrã do documento OpenAPI para gerar documentação de referência da API. Esse instantâneo representa uma revisão específica do documento de descrição.