Resumo da Instalação do Scribe - AgrSis API
Resumo da Instalação do Scribe - AgrSis API
Data: 2025-12-04 Versão Scribe: 5.6.0 Versão Laravel: 11
Status da Instalação
✅ CONCLUÍDA COM SUCESSO
Todas as etapas foram executadas e a documentação está funcional.
O que foi Instalado e Configurado
1. Pacote Scribe
Instalação:
composer require --dev knuckleswtf/scribe
Versão instalada: 5.6.0
2. Configuração
Arquivo: /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/config/scribe.php
Principais configurações aplicadas:
- Título: "AgrSis API"
- Descrição: "API da plataforma AgrSis - Sistema de Licitação Eletrônica para Insumos Agrícolas"
- Tipo:
laravel(documentação integrada ao Laravel) - Base URL: Dinâmica via
config('app.url') - Autenticação:
- Habilitada:
true - Padrão:
true(todos endpoints autenticados por padrão) - Tipo:
Bearer(Sanctum) - Header:
Authorization - Placeholder:
{SEU_TOKEN_SANCTUM}
- Habilitada:
- Linguagens de exemplo: Bash, JavaScript, PHP, Python
- Try It Out: Habilitado
- Rotas: Prefixo
api/* - Postman: Habilitado
- OpenAPI: Habilitado (versão 3.0.3)
3. Rotas da API
Arquivo criado: /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/routes/api.php
Rotas implementadas:
Públicas (não autenticadas):
POST /api/v1/login- LoginPOST /api/v1/register- Registro
Protegidas (autenticadas):
POST /api/v1/logout- LogoutGET /api/v1/me- Dados do usuário autenticadoGET /api/v1/produtos- Listar produtosPOST /api/v1/produtos- Criar produtoGET /api/v1/produtos/{id}- Exibir produtoPUT/PATCH /api/v1/produtos/{id}- Atualizar produtoDELETE /api/v1/produtos/{id}- Excluir produto
Total: 9 endpoints documentados
4. Controllers de Exemplo
Criados:
AuthController
Arquivo: /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/app/Http/Controllers/Api/AuthController.php
Endpoints:
login()- Login de usuáriosregister()- Registro de novos usuárioslogout()- Logoutme()- Dados do usuário autenticado
Anotações incluídas:
@group Autenticação@authenticated/@unauthenticated@bodyParampara parâmetros do corpo@responsecom exemplos de sucesso e erro
ProdutoController
Arquivo: /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/app/Http/Controllers/Api/ProdutoController.php
Endpoints:
index()- Listar produtos (com paginação)store()- Criar produtoshow()- Exibir produtoupdate()- Atualizar produtodestroy()- Excluir produto
Anotações incluídas:
@group Produtos@authenticated@urlParampara parâmetros de URL@queryParampara query strings@bodyParampara corpo da requisição@responsecom múltiplos cenários (200, 201, 404, 422)
5. Bootstrap
Arquivo modificado: /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/bootstrap/app.php
Alteração:
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php', // ← ADICIONADO
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
6. Documentação Gerada
Arquivos criados:
Views Blade:
resources/views/scribe/index.blade.php
Assets:
public/vendor/scribe/(CSS, JS)
Arquivos intermediários:
.scribe/intro.md- Introdução customizada.scribe/auth.md- Informações de autenticação.scribe/endpoints/- Endpoints processados.scribe/endpoints.cache/- Cache
Exportações:
storage/app/private/scribe/collection.json- Postman Collectionstorage/app/private/scribe/openapi.yaml- OpenAPI Specification
7. README
Arquivo criado: /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/README_SCRIBE.md
Conteúdo:
- Introdução ao Scribe
- Como acessar a documentação
- Como adicionar/atualizar documentação
- Tipos de anotações disponíveis
- Exemplos práticos completos
- Comandos úteis
- Exportação para Postman/Insomnia/Swagger
- Configuração avançada
- Boas práticas
- Troubleshooting
Arquivos Criados/Modificados
Criados:
/api/config/scribe.php- Configuração do Scribe/api/routes/api.php- Rotas da API/api/app/Http/Controllers/Api/AuthController.php- Controller de autenticação/api/app/Http/Controllers/Api/ProdutoController.php- Controller de produtos/api/README_SCRIBE.md- Documentação completa de uso/api/.scribe/- Diretório com arquivos gerados/api/resources/views/scribe/- Views da documentação/api/public/vendor/scribe/- Assets (CSS/JS)/api/storage/app/private/scribe/collection.json- Postman Collection/api/storage/app/private/scribe/openapi.yaml- OpenAPI Spec/api/INSTALACAO_SCRIBE_RESUMO.md- Este arquivo
Modificados:
/api/bootstrap/app.php- Adicionada rota API/api/composer.json- Adicionado Scribe nas dependências dev/api/composer.lock- Atualizado com novas dependências
Como Acessar a Documentação
Localmente (sem Docker - servidor não está rodando)
# Navegar até o diretório
cd /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api
# Iniciar servidor
php artisan serve
# Acessar no navegador:
# http://localhost:8000/docs
Com Docker (container não está rodando)
# Navegar até o diretório raiz do projeto
cd /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1
# Iniciar containers
docker-compose up -d
# Acessar no navegador:
# http://localhost:8000/docs
URLs Disponíveis:
- Documentação HTML: http://localhost:8000/docs
- Postman Collection: http://localhost:8000/docs.postman
- OpenAPI Spec: http://localhost:8000/docs.openapi
Próximos Passos Recomendados
1. Testar a Documentação
# Iniciar servidor
cd /Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api
php artisan serve
# Abrir navegador em http://localhost:8000/docs
2. Adicionar Mais Endpoints
À medida que você criar novos controllers:
- Adicione as anotações do Scribe
- Execute
php artisan scribe:generate - Verifique a documentação em
/docs
3. Importar no Postman
# Copiar collection para área de trabalho
cp storage/app/private/scribe/collection.json ~/Desktop/agrsis-api-postman.json
Depois importe no Postman: Import → File → Selecione o arquivo
4. Configurar CORS (se necessário)
Se for usar "Try It Out" de outro domínio, configure CORS:
# Instalar Laravel CORS (já deve estar instalado)
composer require fruitcake/laravel-cors
# Configurar em config/cors.php
5. Adicionar Logo (opcional)
- Coloque a logo em
public/img/logo.png - Edite
config/scribe.php:'logo' => 'img/logo.png', - Regere:
php artisan scribe:generate
6. Documentar Endpoints Reais
Os controllers criados são apenas exemplos. Quando implementar os endpoints reais:
- Mantenha as anotações do Scribe
- Ajuste os exemplos de resposta com dados reais
- Adicione todos os cenários de erro possíveis
- Documente validações específicas
7. Criar Model User (se não existir)
O AuthController usa App\Models\User. Se não existir, crie:
php artisan make:model User
E configure conforme necessário com Sanctum.
Comandos Úteis
# Gerar documentação
php artisan scribe:generate
# Limpar cache e gerar
php artisan route:clear && php artisan config:clear && php artisan scribe:generate
# Limpar cache de endpoints
rm -rf .scribe/endpoints.cache/*
# Ver rotas registradas
php artisan route:list --path=api
# Exportar collection Postman
cp storage/app/private/scribe/collection.json ~/Desktop/
# Exportar OpenAPI spec
cp storage/app/private/scribe/openapi.yaml ~/Desktop/
Estrutura Final de Diretórios
/Users/gustavocarneiro/EMPRESA/web/agrsis/agrsis-v1/api/
│
├── app/
│ └── Http/
│ └── Controllers/
│ └── Api/
│ ├── AuthController.php ← NOVO
│ └── ProdutoController.php ← NOVO
│
├── config/
│ └── scribe.php ← NOVO
│
├── routes/
│ ├── api.php ← NOVO
│ ├── console.php
│ └── web.php
│
├── resources/views/scribe/ ← NOVO (gerado)
│ └── index.blade.php
│
├── public/vendor/scribe/ ← NOVO (gerado)
│ ├── css/
│ └── js/
│
├── storage/app/private/scribe/ ← NOVO (gerado)
│ ├── collection.json
│ └── openapi.yaml
│
├── .scribe/ ← NOVO (gerado)
│ ├── auth.md
│ ├── intro.md
│ ├── endpoints/
│ └── endpoints.cache/
│
├── bootstrap/
│ └── app.php ← MODIFICADO
│
├── README_SCRIBE.md ← NOVO
├── INSTALACAO_SCRIBE_RESUMO.md ← NOVO (este arquivo)
├── composer.json ← MODIFICADO
└── composer.lock ← MODIFICADO
Grupos Documentados
- Autenticação
- Login
- Registro
- Logout
- Dados do Usuário Autenticado
- Produtos
- Listar (com paginação, busca, filtros)
- Criar
- Exibir
- Atualizar
- Excluir
Informações Técnicas
Dependências Instaladas:
knuckleswtf/scribe: ^5.6erusev/parsedown: 1.7.4mpociot/reflection-docblock: 1.0.1shalvah/clara: 3.3.0shalvah/upgrader: 0.6.0symfony/var-exporter: v7.4.0
Configurações do Laravel Modificadas:
- Rotas API habilitadas no bootstrap
- Prefixo padrão:
/api - Middleware:
api
Notas Importantes
- Container Docker: O container
agrsis_apinão está rodando no momento. Para usar com Docker, inicie os containers primeiro. - Model User: Os controllers usam
App\Models\User. Certifique-se de que existe e está configurado com Sanctum. - Banco de Dados: As implementações dos controllers são apenas exemplos. Conecte-os ao banco de dados real quando implementar.
- CORS: Configure CORS se for usar "Try It Out" de outro domínio.
- Autenticação: A configuração está preparada para Laravel Sanctum. Configure o Sanctum se ainda não estiver configurado.
- Produção: Quando for para produção:
- Gere a documentação:
php artisan scribe:generate - Configure a URL base correta em
.env - Considere adicionar autenticação para acessar
/docsse necessário
- Gere a documentação:
Referências
- Documentação Oficial Scribe: https://scribe.knuckles.wtf/laravel
- GitHub Scribe: https://github.com/knuckleswtf/scribe
- README Completo:
/api/README_SCRIBE.md
Suporte
Para dúvidas sobre:
- Como usar: Consulte
/api/README_SCRIBE.md - Configuração: Veja
config/scribe.php(bem comentado) - Exemplos: Veja os controllers em
app/Http/Controllers/Api/ - Documentação oficial: https://scribe.knuckles.wtf/laravel
Instalação concluída com sucesso!
Todos os arquivos foram criados e a documentação está pronta para uso. Basta iniciar o servidor e acessar /docs.