API que busca dados de um processo em todos os graus dos Tribunais de Justiça de São Paulo (TJSP), Alagoas (TJAL) e do Ceará (TJCE).
A api recebe o número do processo, que deve seguir o padrão do Conselho Nacional de Justiça para numeração de processos jurídicos.
Quando o processamento termina, o usuário é capaz de coletar os dados em formato JSON.
Endereços utilizados para as consultas de processos:
Dados coletados:
Exemplos de números de processos podem ser encontrados nos diários oficiais
Foi feito deploy da aplicação em nuvem com Deta Space.
Está disponível em: https://jus_crawler-1-e8456548.deta.app
A documentação da API pode ser acessada em: https://jus_crawler-1-e8456548.deta.app/docs
space push
№ | Path | Description |
---|---|---|
1. | source/ | Diretório com toda a lógica do projeto |
2. | source/controller | Métodos/endpoints da API |
3. | source/models | Classes com informações necessárias para processar as requisições da API |
4. | source/services/collect.py | Implementação do crawler com métodos de busca e parsing dos dados |
5. | source/services/parse.py | Métodos utilizados pelo crawler para parsing dos dados |
6. | source/services/tribunais_mapper.py | Estruturas que concentram todas as informações necessárias dos tribunais suportados (nome, número e domínio do site) |
7. | source/services/validate.py | Schemas contendo as regras para validação dos dados de input com Cerberus |
8. | front-end/ | Diretório contendo arquivos estáticos e templates HTML |
9. | tests/ | Diretório com os testes do projeto |
10. | README.md | Arquivo atual com a documentação do projeto |
11. | requirements.txt | Lista dos pacotes utilizados no projeto |
Na branch async-tjal
encontra-se o código com implementação de processamento assíncrono. Essa funcionalidade
reduziu o tempo de resposta da API, possibilitando a busca e retorno dos dados em menos de 2 segundos (em média).
Porém, uma limitação foi encontrada. Não foi possível estabelecer conexão com o site do TJCE utilizando essa funcionalidade. A mensagem de erro pode ser visualizada abaixo:
aiohttp.client_exceptions.ClientConnectorSSLError: Cannot connect to host esaj.tjce.jus.br:443 ssl:default [TLS/SSL connection has been closed (EOF)]
Portanto, atualmente é possível utilizar o processamento assíncrono apenas para buscar informações de processos do TJAL.
pyenv install 3.11.3
pyenv virtualenv 3.11.3 env-jus_crawler
pyenv activate env-jus_crawler
pyenv local env-jus_crawler # opcional
pip install --upgrade pip
pip install -r requirements.txt
uvicorn source.controller.routes:app --reload
App will be available in http://127.0.0.1:8000
Swagger API’s documentation will be available in http://127.0.0.1:8000/docs
coverage run -m pytest tests/test_controller.py
coverage run -m pytest tests/test_collect_service.py
coverage report
coverage html
Html coverage report page will be available in htmlcov/index.html