Skip to content

Gobiru é uma ferramenta de linha de comando para gerar documentação de APIs Go automaticamente a partir do seu código. Ele analisa suas rotas do Gorilla Mux e gera documentação no formato OpenAPI (Swagger).

License

Notifications You must be signed in to change notification settings

jeffemart/Gobiru

Repository files navigation

Gobiru - Gerador de Documentação de API

Gobiru Logo

Gobiru é uma ferramenta para gerar automaticamente documentação de APIs Go, suportando os frameworks Gin, Gorilla Mux e Fiber.

Instalação

go install github.com/jeffemart/gobiru/cmd/gobiru@latest

Uso

O Gobiru analisa seu código fonte e gera documentação em formato OpenAPI (Swagger).

Parâmetros

  • -framework: Framework usado (gin, mux, fiber)
  • -main: Arquivo principal da aplicação (opcional)
  • -title: Título da documentação
  • -description: Descrição da API
  • -version: Versão da API

Testes

O projeto inclui testes para garantir a funcionalidade correta. Para executar todos os testes, use o seguinte comando:

go test ./...

Os testes verificarão se as funções e rotas estão funcionando conforme o esperado.

Exemplos por Framework

Gin

./gobiru -framework gin \
       -main examples/gin/main.go \
       -output examples/gin/docs/routes.json \
       -openapi examples/gin/docs/openapi.json \
       -title "API Gin" \
       -description "API de exemplo usando Gin" \
       -version "1.0.0"

Exemplo de rota com Gin:

func SetupAuthRoutes(r *gin.Engine) {
    api := r.Group("/api/v1")
    users := api.Group("/users")
    {
        users.GET("/:id", handlers.GetUser)
        users.POST("", handlers.CreateUser)
        users.PUT("/:id", handlers.UpdateUser)
    }
}

Gorilla Mux

./gobiru -framework mux \
       -main examples/gorilla/main.go \
       -output examples/gorilla/docs/routes.json \
       -openapi examples/gorilla/docs/openapi.json \
       -title "API Mux" \
       -description "API de exemplo usando Gorilla Mux" \
       -version "1.0.0"

Exemplo de rota com Mux:

func SetupPublicRoutes(r *mux.Router) {
    api := r.PathPrefix("/api/v1").Subrouter()
    
    // Autenticação
    auth := api.PathPrefix("/auth").Subrouter()
    auth.HandleFunc("/login", handlers.Login).Methods("POST")
    auth.HandleFunc("/register", handlers.Register).Methods("POST")
}

Fiber

./gobiru -framework fiber \
       -main examples/fiber/main.go \
       -output examples/fiber/docs/routes.json \
       -openapi examples/fiber/docs/openapi.json \
       -title "API Fiber" \
       -description "API de exemplo usando Fiber" \
       -version "1.0.0"

Exemplo de rota com Fiber:

func SetupRoutes(app *fiber.App) {
    api := app.Group("/api/v1")
    
    // Produtos
    products := api.Group("/products")
    products.Get("/", handlers.ListProducts)
    products.Post("/", handlers.CreateProduct)
    products.Get("/:id", handlers.GetProduct)
}

Estrutura do Projeto

O Gobiru funciona analisando a estrutura do seu projeto. Ele:

  1. Começa pelo arquivo main.go
  2. Segue os imports para encontrar arquivos de rotas e handlers
  3. Analisa a definição das rotas
  4. Gera documentação completa

Exemplo de Estrutura

seu-projeto/
├── main.go
├── routes/
│   ├── auth_routes.go    # Rotas de autenticação
│   ├── product_routes.go # Rotas de produtos
│   └── order_routes.go   # Rotas de pedidos
└── handlers/
    ├── auth_handlers.go    # Handlers de autenticação
    ├── product_handlers.go # Handlers de produtos
    ├── order_handlers.go   # Handlers de pedidos
    └── models.go          # Definições de estruturas

Características

  • Detecção automática de arquivos de rotas e handlers
  • Suporte a múltiplos arquivos
  • Geração de documentação JSON e OpenAPI
  • Suporte a comentários para descrição das rotas
  • Análise de parâmetros de rota, query e body
  • Documentação de respostas e códigos de status

Contribuindo

Contribuições são bem-vindas! Por favor, sinta-se à vontade para submeter pull requests.

Licença

Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para detalhes.

About

Gobiru é uma ferramenta de linha de comando para gerar documentação de APIs Go automaticamente a partir do seu código. Ele analisa suas rotas do Gorilla Mux e gera documentação no formato OpenAPI (Swagger).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published