Esta é uma série de 10 partes compartilhando como a Apidog desenvolveu o Apidog CLI, uma ferramenta de linha de comando para testes de API e gerenciamento do ciclo de vida da API. Leia em ordem ou pule para qualquer postagem que lhe interesse:
| Título | Foco | |
|---|---|---|
| 1 | Construímos 126 Ferramentas MCP. Mas Não É a Melhor Solução para o Agente | Descoberta do problema |
| 2 | Por Que Desenvolvemos o Novo Apidog CLI | Desenvolvimento da arquitetura |
| 3 | A Regra de Ouro: CLI Produz Fatos, Modelo Atua com Base nos Fatos | Filosofia central |
| 4 | agentHints: Ensinando CLIs a Falar com Agentes |
Saída estruturada |
| 5 | SKILL: Entregando Experiência Operacional como Código | Experiência operacional |
| 6 | Os Números Não Mentem: 30% Menos Chamadas de Ferramentas, 25% Menos Tokens | Resultados quantitativos |
| 7 | Do PRD ao Ciclo de Testes: Um Fluxo de Trabalho Completo do Agente com Apidog CLI | Tutorial prático |
| 8 | Por Que a Compatibilidade com CI/CD Não É Negociável para Ferramentas de Agente | Perspectiva DevOps |
| 9 | AI Branch: Mudanças de Projeto Mais Seguras com Agentes de IA | Camada de segurança |
| 10 | Spec-First Foi Ontem. Bem-Vindo ao Skill-First. | Visão e futuro |
Vamos analisar um exemplo real: uma equipe tem um PRD de Reembolso de Pedido e uma base de código. Veja como um Agente usa o Apidog CLI + SKILL para gerar OpenAPI, criar testes, validar e verificar – de ponta a ponta.
O Cenário
Vamos tornar tudo concreto com um fluxo de trabalho real.
Contexto:
Uma equipe acabou de escrever um PRD de "Reembolso de Pedido". A base de código já possui rotas e controladores correspondentes.
Solicitação do usuário ao Agente:
"Gere testes de API para a funcionalidade de reembolso com base no PRD e na base de código, e em seguida execute a verificação."
O Problema da Abordagem Antiga
Com as ferramentas MCP, o Agente enfrenta uma série de dilemas:
| Ponto de Decisão | Incerteza |
|---|---|
| Consultar o projeto primeiro? | Ou criar o endpoint primeiro? |
| Escrever o caso de teste primeiro? | Ou gerar o Schema primeiro? |
| Executar os testes diretamente? | Ou ler os recursos primeiro? |
| Qual ferramenta para cada etapa? | Pesquisar entre 126 ferramentas |
O Agente gasta um esforço significativo apenas para decidir o caminho – não para executar a tarefa.
O Caminho CLI + SKILL
CLI + SKILL atende a fluxos reais de P&D com uma sequência clara:
Gerar OpenAPI a partir do PRD e base de código
↓
Importar para o Apidog
↓
Adicionar casos de teste de endpoint único
↓
Validar antes de escrever
↓
Gerar cenário de teste para o fluxo de negócios
↓
Validar antes de escrever
↓
Executar testes automatizadosVamos analisar cada etapa.
Passo 1: Gerar e Importar OpenAPI
O Agente lê o PRD e a base de código, então gera a especificação OpenAPI.
Trecho do PRD:
API de Reembolso de Pedido
POST /api/orders/{orderId}/refund
- Corpo da requisição: { "reason": string, "amount": number }
- Resposta: { "refundId": string, "status": string, "processedAt": datetime }
GET /api/orders/{orderId}/refund/{refundId}
- Resposta: { "refundId": string, "status": string, "amount": number }Agente gera OpenAPI:
{
"openapi": "3.0.0",
"paths": {
"/api/orders/{orderId}/refund": {
"post": {
"summary": "Criar solicitação de reembolso",
"parameters": [...],
"requestBody": {...},
"responses": {...}
}
},
"/api/orders/{orderId}/refund/{refundId}": {
"get": {
"summary": "Obter status de reembolso",
...
}
}
}
}Importar para o Apidog:
apidog import --project <projectId> --format openapi --file ./openapi.jsonSaída do CLI:
{
"success": true,
"data": {
"importedEndpoints": ["POST /refund", "GET /refund/{refundId}"],
"endpointIds": ["ep-001", "ep-002"]
},
"agentHints": {
"summary": "OpenAPI importado com sucesso. 2 endpoints criados.",
"nextSteps": [
"Listar os endpoints importados para confirmar a estrutura.",
"Adicionar casos de teste para cada endpoint.",
"Criar um cenário de teste para o fluxo completo de reembolso."
]
}
}Passo 2: Casos de Teste de Endpoint Único
O Agente foca primeiro no "endpoint de reembolso".
Agente lê o endpoint:
apidog endpoint get ep-001 --project <projectId>CLI retorna a estrutura do endpoint:
{
"id": "ep-001",
"method": "POST",
"path": "/api/orders/{orderId}/refund",
"requestBody": {
"schema": {
"type": "object",
"properties": {
"reason": { "type": "string" },
"amount": { "type": "number" }
},
"required": ["reason", "amount"]
}
},
"responses": {
"200": {...}
}
}Agente gera caso de teste:
{
"name": "Criar reembolso - sucesso",
"endpointId": "ep-001",
"request": {
"path": "/api/orders/order-123/refund",
"body": {
"reason": "Solicitação do cliente",
"amount": 99.99
}
},
"assertions": [
{
"subject": "responseJson.status",
"comparator": "equal",
"target": "processado"
}
]
}Validar antes de escrever:
apidog cli-schema validate test-case-create --file ./test-case-create.jsonResultado da validação do CLI:
{
"success": true,
"agentHints": {
"summary": "A estrutura do caso de teste é válida.",
"nextSteps": [
"Criar o caso de teste no Apidog.",
"Ler o caso de teste criado para confirmar.",
"Adicionar mais asserções, se necessário."
]
}
}Criar caso de teste:
apidog test-case create --project <projectId> --file ./test-case-create.jsonSaída do CLI:
{
"success": true,
"data": {
"id": "tc-001",
"name": "Criar reembolso - sucesso"
},
"agentHints": {
"summary": "Caso de teste criado com sucesso.",
"nextSteps": [
"Ler o caso de teste tc-001 para confirmar as asserções.",
"Criar caso de teste para GET /refund/{refundId}.",
"Construir cenário de teste para o fluxo completo de reembolso."
]
}
}Passo 3: Cenário de Teste para o Fluxo Completo
Com base no PRD, o fluxo de negócios completo é:
Criar pedido → Pagar → Reembolsar → Consultar status de reembolsoAgente gera cenário:
{
"name": "Fluxo Completo de Reembolso de Pedido",
"steps": [
{ "type": "case", "caseId": "tc-create-order" },
{ "type": "case", "caseId": "tc-pay" },
{ "type": "case", "caseId": "tc-001" },
{ "type": "case", "caseId": "tc-get-refund" }
]
}Validar antes de escrever:
apidog cli-schema validate test-scenario-update --file ./scenario-update.jsonCriar cenário:
apidog test-scenario create --project <projectId> --file ./scenario-update.jsonPasso 4: Executar Verificação
Depois que os casos de teste e cenários estão prontos:
apidog run --project <projectId> \
--test-scenario scenario-001 \
--environment env-production \
-r "cli,html,junit" \
--out-dir ./apidog-reportsSaída do CLI:
{
"success": true,
"stats": {
"total": 4,
"passed": 4,
"failed": 0
},
"reportFiles": {
"cli": "./apidog-reports/cli-report.txt",
"html": "./apidog-reports/report.html",
"junit": "./apidog-reports/junit.xml"
},
"agentHints": {
"summary": "Todos os testes passaram. 4 etapas executadas com sucesso.",
"nextSteps": [
"Revisar o relatório HTML para resultados detalhados.",
"Se ocorrerem falhas, depurar usando os detalhes de erro do CLI.",
"Integrar este teste no pipeline de CI."
]
}
}A Cadeia Completa
Todos os elementos estão agora conectados:
| Elemento | Status |
|---|---|
| PRD | Lido e processado |
| Base de código | Analisada para rotas |
| OpenAPI | Gerado e importado |
| Ativos de endpoint | Criados no Apidog |
| Testes de endpoint único | Criados e validados |
| Cenário de negócios | Construído e verificado |
Tudo é verificável e rastreável.
agentHints ao Longo do Fluxo
Observe como `agentHints` guia cada transição:
| Depois de | `agentHints` Sugere |
|---|---|
| Importar endpoints | "Listar endpoints, adicionar casos de teste" |
| Criar caso de teste | "Ler novamente, criar mais casos de teste, construir cenário" |
| Criar cenário | "Adicionar asserções, validar, executar" |
| Executar testes | "Revisar relatório, depurar se necessário, integrar ao CI" |
O Agente nunca precisa adivinhar o que fazer em seguida.
Comparação: MCP vs. CLI + SKILL para Esta Tarefa
| Dimensão | Abordagem MCP | Abordagem CLI + SKILL |
|---|---|---|
| Ponto de partida | Agente busca ferramentas de projeto | SKILL identifica o tipo de tarefa |
| Criação de endpoint | Agente adivinha qual ferramenta, quais campos | Importação CLI a partir de OpenAPI |
| Criação de caso de teste | Múltiplas tentativas em erros de campo | Validação local antes da escrita |
| Construção de cenário | Agente escreve a estrutura manualmente | Importar etapas, ler novamente, atualizar |
| Verificação | Agente encontra ferramenta de execução | `agentHints` sugere após o cenário |
| Total de etapas | ~20-25 chamadas com retentativas | ~10-12 chamadas validadas |
O Que Vem a Seguir
Este exemplo prático mostra como o CLI + SKILL funciona em um fluxo de trabalho real.
Mas há uma base por trás de tudo isso: a compatibilidade com CI/CD.
Na Parte 8, Por Que a Compatibilidade com CI/CD Não É Negociável para Ferramentas de Agente, exploraremos por que o apidog run atende tanto a pipelines de CI quanto a Agentes de IA – e por que esse propósito duplo é importante para o design sustentável de ferramentas.
Conclusões Principais
- Fluxo de trabalho completo: PRD → OpenAPI → Importar → Casos de Teste → Cenário → Verificar
- Cada etapa tem comando CLI + validação + agentHints
- Importar etapas + ler novamente é mais seguro do que escrever cenários manualmente
--with-case-detailoferece estrutura real para atualizações- `agentHints` guia cada transição
- Tudo é verificável e rastreável
Baixe o Apidog para projetar, simular, testar e documentar APIs em um único workspace. Saiba mais sobre o Apidog CLI para testes de API via linha de comando, automação de CI e fluxos de trabalho de Agentes de IA.
