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.