PHPackages                             silvio-batista/laravel-postman-exporter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. silvio-batista/laravel-postman-exporter

ActiveLibrary[API Development](/categories/api)

silvio-batista/laravel-postman-exporter
=======================================

Exporta automaticamente rotas Laravel para Postman Collections v2.1

v1.0.0(1mo ago)34MITPHPPHP ^8.1|^8.2|^8.3

Since Jul 13Pushed 1mo agoCompare

[ Source](https://github.com/Silvio-Batista/laravel-postman-exporter)[ Packagist](https://packagist.org/packages/silvio-batista/laravel-postman-exporter)[ RSS](/packages/silvio-batista-laravel-postman-exporter/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (5)Versions (2)Used By (0)

Laravel Postman Exporter
========================

[](#laravel-postman-exporter)

[![Latest Version](https://camo.githubusercontent.com/de10e7a718152e7ad7986d87a00a43d7909ae734ea28725c42808ea63932de45/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73696c76696f2d626174697374612f6c61726176656c2d706f73746d616e2d6578706f727465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/silvio-batista/laravel-postman-exporter)[![Total Downloads](https://camo.githubusercontent.com/d401ac819da173148842b76cf249e140580229f253827314537889074a610bdb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73696c76696f2d626174697374612f6c61726176656c2d706f73746d616e2d6578706f727465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/silvio-batista/laravel-postman-exporter)[![License](https://camo.githubusercontent.com/e851c635427cb8517f16327c9e46594813c22077d0ceb3c53fb032fa002e0059/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f73696c76696f2d626174697374612f6c61726176656c2d706f73746d616e2d6578706f727465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/silvio-batista/laravel-postman-exporter)[![PHP Version](https://camo.githubusercontent.com/27bf50bb867011674d4cfcd646d04003860d9b2e52b9930bd379e73c2206767b/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f73696c76696f2d626174697374612f6c61726176656c2d706f73746d616e2d6578706f727465722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/silvio-batista/laravel-postman-exporter)

Biblioteca PHP para Laravel que exporta automaticamente rotas da aplicação para **Postman Collections v2.1**, incluindo validações, body examples, autenticação e responses organizados por prefixo de rota.

🚀 Características
-----------------

[](#-características)

- ✅ Extração automática de validações do FormRequest
- ✅ Geração de body examples baseados em regras de validação
- ✅ Detecção automática de autenticação via middlewares
- ✅ Organização inteligente por prefixos de rota
- ✅ Responses de exemplo (200, 422, 401)
- ✅ Variáveis de ambiente configuráveis
- ✅ Path variables automáticos para parâmetros de rota
- ✅ Headers padrão (Accept, Content-Type, Authorization)
- ✅ 100% compatível com Postman Collection v2.1

📋 Requisitos
------------

[](#-requisitos)

- PHP 8.1 ou superior
- Laravel 10.x, 11.x, 12.x ou 13.x

📦 Instalação
------------

[](#-instalação)

Instale o pacote via Composer:

```
composer require silvio-batista/laravel-postman-exporter --dev
```

Publique o arquivo de configuração:

```
php artisan vendor:publish --provider="LaravelPostmanExporter\PostmanExporterServiceProvider"
```

Isso criará o arquivo `config/postman-exporter.php`.

🎯 Uso Básico
------------

[](#-uso-básico)

### Exportar todas as rotas

[](#exportar-todas-as-rotas)

```
php artisan postman:export
```

O arquivo será salvo em `storage/postman-collection.json`.

### Opções de linha de comando

[](#opções-de-linha-de-comando)

```
# Especificar caminho de saída customizado
php artisan postman:export --output=public/api-docs.json

# Definir nome customizado da collection
php artisan postman:export --name="My API v1"

# Filtrar rotas por padrão
php artisan postman:export --routes="api/*"

# Excluir rotas específicas
php artisan postman:export --exclude="admin/*"

# Combinar opções
php artisan postman:export --output=api.json --name="My API" --routes="api/*"
```

⚙️ Configuração
---------------

[](#️-configuração)

O arquivo `config/postman-exporter.php` permite personalizar diversos aspectos:

```
return [
    // Nome padrão da collection
    'collection_name' => env('APP_NAME', 'Laravel API'),

    // URL base padrão
    'base_url' => env('APP_URL', 'http://localhost'),

    // Prefixos de rotas a incluir (null = todas)
    'route_prefix' => ['api'],

    // Padrões de rotas a excluir
    'exclude_routes' => [
        '_debugbar/*',
        'telescope/*',
        'horizon/*',
        'sanctum/csrf-cookie',
    ],

    // Incluir responses de exemplo
    'include_responses' => true,

    // Incluir testes de exemplo (scripts Postman)
    'include_tests' => false,

    // Organização dos folders: 'prefix', 'controller', 'middleware'
    'organize_by' => 'prefix',

    // Middlewares que indicam autenticação
    'auth_middlewares' => ['auth', 'auth:sanctum', 'auth:api'],

    // Headers padrão
    'default_headers' => [
        'Accept' => 'application/json',
        'Content-Type' => 'application/json',
    ],

    // Variáveis de ambiente
    'variables' => [
        'base_url' => env('APP_URL', 'http://localhost'),
        'auth_token' => '',
    ],
];
```

📚 Exemplo Completo
------------------

[](#-exemplo-completo)

### 1. Rotas Laravel

[](#1-rotas-laravel)

```
// routes/api.php
Route::prefix('api')->group(function () {
    Route::get('/users', [UserController::class, 'index']);
    Route::post('/users', [UserController::class, 'store']);
    Route::get('/users/{id}', [UserController::class, 'show']);

    Route::middleware('auth:sanctum')->group(function () {
        Route::put('/users/{id}', [UserController::class, 'update']);
        Route::delete('/users/{id}', [UserController::class, 'destroy']);
    });
});
```

### 2. FormRequest com validações

[](#2-formrequest-com-validações)

```
// app/Http/Requests/StoreUserRequest.php
class StoreUserRequest extends FormRequest
{
    public function rules(): array
    {
        return [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'email', 'unique:users'],
            'password' => ['required', 'string', 'min:8'],
            'age' => ['nullable', 'integer', 'min:18'],
            'tags' => ['array', 'min:1'],
        ];
    }
}
```

### 3. Controller

[](#3-controller)

```
// app/Http/Controllers/UserController.php
class UserController extends Controller
{
    public function store(StoreUserRequest $request)
    {
        $user = User::create($request->validated());
        return response()->json($user, 201);
    }
}
```

### 4. Exportar

[](#4-exportar)

```
php artisan postman:export
```

### 5. Resultado no Postman

[](#5-resultado-no-postman)

A collection gerada terá:

**Folder: Users**

- **GET** Get Users
- **POST** Create Users (com body example automático) ```
    {
      "name": "John Doe",
      "email": "user@example.com",
      "password": "password123",
      "age": 18,
      "tags": ["tag1"]
    }
    ```
- **GET** Get Users Id
- **PUT** Update Users Id (requer autenticação)
- **DELETE** Delete Users Id (requer autenticação)

**Variáveis:**

- `base_url`:
- `auth_token`: (vazio - configure após importar)

**Responses de exemplo:**

- 200 OK (sucesso)
- 422 Unprocessable Entity (erro de validação)
- 401 Unauthorized (não autenticado)

🎨 Recursos Avançados
--------------------

[](#-recursos-avançados)

### Detecção Automática de Tipos

[](#detecção-automática-de-tipos)

O parser detecta automaticamente o tipo de cada campo:

```
'email' => ['required', 'email']           // → "user@example.com"
'url' => ['url']                           // → "https://example.com"
'date' => ['date']                         // → "2024-01-15"
'is_active' => ['boolean']                 // → true
'price' => ['numeric', 'min:0']            // → 0
'status' => ['in:active,inactive']         // → "active"
```

### Organização Flexível

[](#organização-flexível)

Organize suas requests por:

```
// Por prefixo de rota (padrão)
'organize_by' => 'prefix',  // api/users, api/posts

// Por controller
'organize_by' => 'controller',  // UserController, PostController

// Por middleware
'organize_by' => 'middleware',  // auth, guest, admin
```

### Path Variables

[](#path-variables)

Parâmetros de rota são convertidos automaticamente:

```
Route::get('/users/{id}/posts/{postId}', ...);
// Gera: /users/{{id}}/posts/{{postId}}
```

### Autenticação

[](#autenticação)

Middlewares de autenticação são detectados automaticamente:

```
Route::middleware('auth:sanctum')->group(function () {
    // Headers gerados automaticamente:
    // Authorization: Bearer {{auth_token}}
});
```

📤 Importando no Postman
-----------------------

[](#-importando-no-postman)

1. Abra o Postman
2. Clique em **Import** no canto superior esquerdo
3. Selecione o arquivo `postman-collection.json`
4. Configure as variáveis:
    - `base_url`: URL da sua API (ex: `https://api.example.com`)
    - `auth_token`: Token de autenticação (se necessário)
5. Pronto! Todas as rotas estão disponíveis para teste

🧪 Testes
--------

[](#-testes)

```
composer test
```

🤝 Contribuindo
--------------

[](#-contribuindo)

Contribuições são bem-vindas! Por favor:

1. Fork o projeto
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
4. Push para a branch (`git push origin feature/AmazingFeature`)
5. Abra um Pull Request

📝 Licença
---------

[](#-licença)

Este projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.

🙏 Agradecimentos
----------------

[](#-agradecimentos)

- Comunidade Laravel
- Postman API Platform
- Todos os contribuidores

📧 Suporte
---------

[](#-suporte)

Se você encontrar algum problema ou tiver sugestões, por favor:

1. Verifique as [Issues existentes](https://github.com/Silvio-Batista/laravel-postman-exporter/issues)
2. Crie uma nova Issue descrevendo o problema ou sugestão
3. Forneça exemplos e contexto quando possível

🌟 Star o Projeto
----------------

[](#-star-o-projeto)

Se este pacote foi útil para você, considere dar uma ⭐️ no [GitHub](https://github.com/Silvio-Batista/laravel-postman-exporter)!

---

Feito com ❤️ para a comunidade Laravel

###  Health Score

40

—

FairBetter than 86% of packages

Maintenance90

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

48d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/f7cd625e15a8699ce7111d6ca1bdf799e66a0ab236d55b63954cdefc6c2885c2?d=identicon)[Silvio-Batista](/maintainers/Silvio-Batista)

---

Top Contributors

[![Silvio-Batista](https://avatars.githubusercontent.com/u/109801749?v=4)](https://github.com/Silvio-Batista "Silvio-Batista (4 commits)")

---

Tags

apilaraveldocumentationcollectionPostman

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/silvio-batista-laravel-postman-exporter/health.svg)

```
[![Health](https://phpackages.com/badges/silvio-batista-laravel-postman-exporter/health.svg)](https://phpackages.com/packages/silvio-batista-laravel-postman-exporter)
```

###  Alternatives

[laravel/mcp

Rapidly build MCP servers for your Laravel applications.

80732.6M271](/packages/laravel-mcp)[laravel/boost

Laravel Boost accelerates AI-assisted development by providing the essential context and structure that AI needs to generate high-quality, Laravel-specific code.

3.6k31.1M882](/packages/laravel-boost)[psalm/plugin-laravel

Psalm plugin for Laravel

3365.5M359](/packages/psalm-plugin-laravel)[laravel/cashier

Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.

2.5k31.8M166](/packages/laravel-cashier)[laravel/ai

The official AI SDK for Laravel.

1.1k6.4M360](/packages/laravel-ai)[laravel/surveyor

Static analysis tool for Laravel applications.

89228.4k17](/packages/laravel-surveyor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
