Search by

lopescte / dje-php

lopescte

Biblioteca para autenticação e conexão ao Domicílio Judicial Eletrônico do CNJ.

Package info

github.com/lopescte/DJe-PHP

pkg:composer/lopescte/dje-php

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

1.0.0 2026-08-27 01:12 UTC

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.