Oi Gabriel! Tudo bem?
Primeiro, é importante entender que o Swagger (ou OpenAPI) permite que você descreva a estrutura da sua API de forma padronizada. No seu caso, o arquivo api-docs.json
é gerado automaticamente pelo Swagger a partir das anotações e configurações que você tem no seu código.
Para realizar a manutenção da documentação, você pode seguir os seguintes passos:
Anotações no Código: Verifique se o seu projeto Laravel está utilizando anotações diretamente no código para gerar a documentação. Geralmente, essas anotações são feitas nos controladores e modelos utilizando comentários específicos que o Swagger reconhece. Por exemplo:
/**
* @OA\Get(
* path="/especialidades",
* summary="Retorna uma lista de especialidades",
* @OA\Response(
* response=200,
* description="Lista de especialidades"
* )
* )
*/
public function getEspecialidades()
{
// Lógica do controlador
}
Atualização das Anotações: Se você precisa fazer alterações na documentação, atualize as anotações no código. Por exemplo, se você adicionar novos parâmetros ou alterar a resposta de um endpoint, ajuste as anotações correspondentes.
Regeneração do Arquivo api-docs.json
: Depois de atualizar as anotações, você precisará regenerar o arquivo api-docs.json
. Isso geralmente é feito através de um comando CLI específico do Swagger. No Laravel, você pode usar pacotes como o zircote/swagger-php
para gerar a documentação. O comando pode ser algo como:
php artisan swagger:generate
Verificação da Documentação: Após regenerar o arquivo, verifique se as mudanças foram refletidas corretamente no Swagger UI. Você pode fazer isso acessando a interface do Swagger UI que está configurada para ler o api-docs.json
.
Aqui está um exemplo prático de como você pode alterar a documentação de um endpoint:
Antes da alteração:
/**
* @OA\Get(
* path="/especialidades",
* summary="Retorna uma lista de especialidades",
* @OA\Response(
* response=200,
* description="Lista de especialidades"
* )
* )
*/
public function getEspecialidades()
{
// Lógica do controlador
}
Depois da alteração (adicionando um parâmetro de filtro):
/**
* @OA\Get(
* path="/especialidades",
* summary="Retorna uma lista de especialidades",
* @OA\Parameter(
* name="tipo",
* in="query",
* required=false,
* @OA\Schema(type="string"),
* description="Filtra as especialidades pelo tipo"
* ),
* @OA\Response(
* response=200,
* description="Lista de especialidades"
* )
* )
*/
public function getEspecialidades(Request $request)
{
// Lógica do controlador com filtro
}
No mais, recomendo que leia o seguinte artigo caso tenha alguma dúvida, já que ele aponta uma construção completa de uma documentação.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.