O que a Definição de API significa na prática
A Definição de API geralmente se refere à especificação formal de como uma API funciona: os endpoints (ou operações) disponíveis, entradas obrigatórias, entradas opcionais, saídas esperadas, tipos de dados, regras de validação e formatos de erro. Ela pode ser escrita como um documento OpenAPI/Swagger, um schema JSON, uma especificação interna para desenvolvedores ou documentação legível por humanos.
Ao verificar informações sobre uma Definição de API, você não está tentando confirmar se uma ideia é “verdadeira” em geral—você está verificando se o contrato documentado é consistente, testável e reproduzível para uma determinada versão da API.
Como funciona o processo de verificação (hierarquia de fontes)
Use uma hierarquia de fontes que corresponda à forma como a “mecânica estável” deve ser confirmada.
-
Artefatos de contrato primários (mais estáveis)
- O(s) documento(s) real(is) de definição de API publicado(s) pelo provedor (por exemplo, o arquivo OpenAPI).
- Quaisquer schemas legíveis por máquina incluídos na documentação.
- O identificador de versão documentado e o registro de alterações.
-
Documentação do provedor (camada de interpretação)
- Guias que descrevem como formar solicitações e interpretar respostas.
- Seções de tratamento de erros e autenticação/autorização, se afetarem a estrutura de solicitação/resposta.
-
Comportamento observado a partir de um teste controlado (verificação da realidade)
- Um pequeno conjunto de solicitações em um ambiente de não produção ou sandbox, quando disponível.
- Validação de que os campos, tipos e restrições das respostas correspondem à definição.
Na prática, a verificação é mais forte quando você pode mostrar que a documentação, o schema e as respostas concordam para a mesma versão.
Evidências e etapas de verificação reproduzíveis
Siga um processo passo a passo que você possa repetir.
Etapa 1: Fixe a versão e o escopo
Anote a versão da API e o artefato de definição exato que você está usando (nome do arquivo, URL ou identificador de commit). Presuma que versões diferentes podem ter nomes de campos, parâmetros obrigatórios e formatos de erro diferentes.
Etapa 2: Verifique a estrutura em relação à definição
Para cada endpoint que lhe interessa, verifique se:
- A lista de parâmetros obrigatórios é explícita.
- Os parâmetros opcionais são distinguíveis.
- Os campos de saída são documentados com tipos de dados ou schemas.
- As respostas de erro têm uma estrutura documentada (por exemplo, um código de erro mais mensagem, ou uma lista de problemas de validação).
Etapa 3: Crie casos de teste mínimos com premissas explícitas
Escolha um pequeno conjunto de solicitações que cubram:
- Um caso de “caminho feliz” com apenas os campos obrigatórios.
- Um caso de validação (tipo intencionalmente incorreto ou campo obrigatório ausente) para confirmar o comportamento de erro.
Presuma que não há dados de mercado em tempo real. Se a API exigir parâmetros que geralmente dependem de estado externo (como símbolos ou identificadores), use valores que seu ambiente de teste fornece, ou trate valores ausentes/inválidos como entradas de teste, em vez de tentar prever resultados.
Etapa 4: Compare as respostas com a definição
Para cada resposta:
- Verifique se o payload da resposta inclui os campos descritos.
- Verifique se os tipos de dados correspondem às expectativas (string vs número, objeto vs lista).
- Confirme se os erros são formatados conforme documentado quando as solicitações são inválidas.
Se a definição diz que um campo é opcional, mas ele nunca aparece nas respostas, isso é uma discrepância a ser registrada. Por outro lado, se campos extras aparecerem consistentemente, registre-os como “observados, mas não documentados”, o que pode indicar uma lacuna na documentação.
Etapa 5: Acompanhe os modos de falha, não apenas os resultados
Pelo menos uma limitação material deve fazer parte da verificação:
- Desvio de versão: a documentação pode ficar defasada em relação ao comportamento após atualizações.
- Schemas inconsistentes: campos podem ser documentados, mas ausentes ou renomeados.
- Diferenças de validação: os formatos de erro podem mudar entre endpoints.
- Diferenças de ambiente: o comportamento em sandbox e em produção pode não corresponder.
Trate estes itens como resultados de verificação, não como sinais de correção.
Limitações e riscos esperados
Mesmo com verificações cuidadosas, a verificação é limitada pela incerteza e pela mudança.
- Nenhum teste único garante precisão de longo prazo. Uma definição pode estar correta hoje e ainda assim se tornar desatualizada após atualizações do provedor.
- O comportamento pode variar conforme o contexto. Custos, condições de execução, permissões e falhas de rede podem alterar quais respostas você vê, mesmo quando o contrato é estável.
- A concordância histórica não garante concordância futura. Se as respostas corresponderam anteriormente, isso não garante a correspondência após uma mudança de versão.
Devido a esses limites, mantenha a verificação vinculada a uma versão específica e a um ambiente de teste específico.
Lista de verificação de verificação e próxima pergunta a resolver
Use esta lista de verificação para tornar sua verificação reproduzível:
- Versão registrada tanto para a documentação quanto para os testes. - Endpoints e campos enumerados a partir da definição. - Solicitações mínimas de “caminho feliz” e “falha de validação” criadas com premissas explícitas.