Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Como funciona integração do Swagger UI com aplicação Laravel?

Eu estou buscando compreender como o swagger funciona para executar manuteção em código legado que é documentado com o swagger, no repositório do projeto eu tenho o arquivo do swagger e models para descrever a API documentada. Ao executar o comando generate é gerado o arquivo tratado nas aulas até então, no caso das aulas ".yml" e no meu caso "api-docs.json", como eu posso realizar a documentação, no caso alterar (manutenção) se mudanças no arquivo tratado na aula são irrelevantes pois é um arquivo gerado pela minha implementação do swagger.

2 respostas
solução!

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:

  1. 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
    }
    
  2. 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.

  3. 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
    
  4. 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 ✓.

Não só respondeu a minha dúvida como complementou o conhecimento de n formas, essa resposta em específico ja faz parte das minhas documentações pessoais. Obrigado pela resposta meu patrão, parabéns pelo conhecimento e dedicação!