lopescte / dje-php
Biblioteca para autenticação e conexão ao Domicílio Judicial Eletrônico do CNJ.
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- phpunit/phpunit: ^9.6
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-09-02 03:14:08 UTC
README
Biblioteca PHP, baseada em Guzzle 7, para autenticação e acesso ao Domicílio Judicial Eletrônico do CNJ.
Instalação
composer require lopescte/dje-php
Uso
Mantenha as credenciais fora do código-fonte, por exemplo em variáveis de ambiente.
<?php require 'vendor/autoload.php'; use Lopescte\DJe\Configuration; use Lopescte\DJe\DJeClient; use Lopescte\DJe\Environment; $configuration = new Configuration( getenv('PJE_CLIENT_ID'), getenv('PJE_CLIENT_SECRET'), Environment::STAGING // use Environment::PRODUCTION em produção ); $client = new DJeClient($configuration); $response = $client->request('GET', 'comunicacoes', [ 'query' => ['pagina' => 1], ]); $data = json_decode((string) $response->getBody(), true);
O caminho é relativo a /api/v1/; o Bearer token é obtido automaticamente. Para enviar JSON:
$response = $client->request('POST', 'algum-endpoint', [ 'json' => ['campo' => 'valor'], ]);
A autenticação envia client_id, client_secret e grant_type como
application/x-www-form-urlencoded. O grant_type padrão é client_credentials,
mas pode ser alterado no quarto argumento de Configuration.
| Ambiente | Constante |
|---|---|
| Homologação | Environment::STAGING |
| Produção | Environment::PRODUCTION |
O token fica em memória até próximo do prazo indicado por expires_in. Por segurança,
o cliente aceita apenas caminhos relativos, evitando enviar o token a outro domínio.
Resources e endpoints do Swagger
O pacote inclui uma cópia do contrato OpenAPI publicado pelo PJe. O catálogo permite descobrir Resources, operações e parâmetros sem manter URLs no código da aplicação:
$catalog = $client->resources(); $resources = $catalog->names(); $endpoints = $catalog->endpoints(); // lista todos os operationId disponíveis $endpoint = $catalog->endpoint('obterComunicacoes'); $descricao = $endpoint->describe(); // método, rota, parâmetros e request body $schema = $catalog->schema('InformarCienciaInputModel');
Para percorrer todos os endpoints com seus metadados:
foreach ($catalog->endpoints() as $operationId) { $descricao = $catalog->endpoint($operationId)->describe(); }
Uma operação também pode ser executada diretamente, sem selecionar primeiro o Resource:
$endpoint = $client->resources()->endpoint('obterComunicacoes'); $response = $endpoint->call([ 'headers' => ['tenantId' => 'identificador-do-tenant'], 'query' => [ 'statusCiente' => false, 'page' => 0, 'size' => 20, ], ]);
Para executar, selecione o Resource pela tag do Swagger e separe os parâmetros:
$comunicacoes = $client->resources()->get('Comunicação'); $response = $comunicacoes->call('obterComunicacoes', [ 'headers' => ['tenantId' => 'identificador-do-tenant'], 'query' => [ 'statusCiente' => false, 'page' => 0, 'size' => 20, ], ]);
Exemplo com parâmetros no caminho e corpo JSON:
$response = $comunicacoes->call('informarCiencia', [ 'headers' => ['tenantId' => 'identificador-do-tenant'], 'path' => [ 'numeroProcesso' => '0000000-00.0000.0.00.0000', 'numeroComunicacao' => 123, ], 'body' => [ // campos de InformarCienciaInputModel descritos no OpenAPI ], ]);
O catálogo valida os parâmetros obrigatórios antes do envio. O contrato está em
resources/openapi.json e deve ser atualizado quando o OpenAPI oficial mudar.
Licença
Consulte LICENSE.md.