Páginas filhas
  • Guia de implementacao das APIs TOTVS

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Trocando o nome "Dominio" por "Host" para evitar possíveis confusões com conceitos do DDD

...

Consideramos uma API o agrupamento de endpoints que façam parte da mesma unidade de negócio, criar um novo grupo de endpoints implica em preocupações como versionamento, disponibilidade e documentação. Usamos como base a estrutura "{protocolo}://{dominiohost}/{api}/{produto}/{agrupador}/{versao}/{recurso}". Ex: https://fluig.totvs.com/api/fluig/ecm/v1/users. A partir deste ponto deve-se considerar como regra básica a complexidade necessária para descobrir estes endpoints, ou seja, o agrupamento deve facilitar e não complicar a descoberta dos serviços.

...

Informações

APIs escritas utilizando o protocolo de mensagem padronizada não devem definir o nome do produto na URL. A ideia de APIs padronizadas é que a mesma assinatura atenda diferentes produtos.

A assinatura de API padronizada segue a nomenclatura abaixo:

 "{protocolo}://{dominiohost}/{api}/{agrupador}/{versao}/{recurso}"

...

Bloco de código
languagejs
openapi: 3.0.1
info:
  title: Estrutura de Url para API's
  description: 'Consideramos uma API o agrupamento de endpoints que façam parte da mesma unidade de negócio. Usamos como base a estrutura "{protocolo}://{dominiohost}/{api}/{produto}/{agrupador}/{versao}/{recurso}"'
  version: '1.0'
externalDocs:
  url: 'http://tdn.totvs.com/display/INT/Guia+de+implementacao+das+APIs+TOTVS'
servers:
  - url: '{protocolo}://{dominiohost}/{api}/{produto}/{agrupador}/{versao}/{recurso}'
    variables:
      protocolo:
        default: https
        enum:
          - http
          - https
      dominiohost:
        default: dominiohost
      api:
        default: api
      produto:
        default: produto
      agrupador:
        default: agrupador
      versao:
        default: versao
      recurso:
        default: recurso
paths: {}
components: {}

...