API estática do aplicativo mobilidade.rio da Prefeitura do Rio de Janeiro.
Acesse a wiki para saber maiores detalhes do projeto, como:
- Endpoints
- Problemas comuns
- Links úteis
- Arquitetura
- Desenvolvimento local
- Exemplos e tutoriais
- Python >= 3.9
- Docker
- Powershell - para usar o utilitário
project
Para definir se o projeto deve rodar como native, dev, staging, prod é preciso configurar um .env, e se achar necessário alterar o settings do Django basta criar um arquivo customizado como no exemplo abaixo:
mobilidade-rio-api/
📂 mobilidade_rio/
📂 local_dev/
⚙️ api-native.env
📂 settings/
...
📂 local_dev/
🐍 native.py
🐍 docker.py
-
Criar ambiente virtual Python
Anaconda:
conda create -n mobilidade_rio_api python=3.9 conda activate mobilidade_rio_api pip install -r mobilidade_rio/requirements.txt -r requirements-dev.txt
-
Criar arquivos de desenvolvimento local:
Bash ou powershell:
cp dev/mobilidade_rio/local_dev_example mobilidade_rio/local_dev -r cp dev/mobilidade_rio/settings/local_dev_example mobilidade_rio/settings/local_dev -r
Resultado:
mobilidade-rio-api/
...
📂 mobilidade_rio/ # "src/"
...
📂 local_dev/
🐋 Dockerfile
🐋 docker-compose.yml
⚙️ api-native.env
⚙️ api.env
...
📂 mobilidade_rio/ # app principal
📂 settings/
...
📂 local_dev/
🐍 native.py
docker-compose -f "mobilidade_rio/local_dev/docker-compose.yml" up --build
-
Iniciar o ambiente virtual (recomendado, toda vez que abrir um terminal)
conda activate mobilidade_rio_api
-
Carregando o .env na sessão atual do terminal
Bash
source mobilidade_rio/local_dev/api-native.env
Powershell
project env api-native
Para mais informações rode
project help
-
Iniciar servidor:
Bash
python mobilidade_rio/manage.py migrate python mobilidade_rio/manage.py runserver 8001
Powershell
project runserver native
- O deploy e execução das branches de dev, staging e produção são feitos automaticamente via Github Actions.
- Essas branches usam a configuração Django de acordo com seu nome. Exemplo: a branch
dev
usa a configuração dev.
URL base para acessar a aplicação:
- native:
localhost:8001
(sugerido) - docker:
localhost:8010
(sugerido) - dev:
https://api.dev.mobilidade.rio
- stag:
https://api.staging.mobilidade.rio
- prod:
https://api.mobilidade.rio
Recomenda-se o pgAdmin para gerenciar o banco de dados.
-
Carregue os dados no servidor (pgAdmin web)
- Vá no menu Tools > Storage Manager
- Crie e entre na pasta chamada
backup
ou similar - Na janela do Storage Manager clique no botão
...
>Upload
- Selecione todos os arquivos desejados
⚠️ Não selecione uma pasta inteira, pode causar falha no upload -
Esvazie todas as tabelas:
- Em seu database > schema > public, abra o Query Tool.
- Esvazie as tabelas rodando esta query:
-- Truncate tables TRUNCATE pontos_agency, pontos_calendar, pontos_calendardates, pontos_frequencies, pontos_routes, pontos_shapes, pontos_stops, pontos_stoptimes, pontos_trips RESTART IDENTITY CASCADE
-
Carregue os dados para as tabelas
- Selecionar tabela por tabela
- Clicar no menu
Tools
>Import/Export data
- Configurar o Filename e o formato
- Dentro da janela de Import/Export, selecione o menu Columns e confira se a ordem das colunas é exatamente a mesma
- Clique em OK
-
Confira se os dados subiram
Execute esta query para verificar:
-- Count tables SELECT 'pontos_agency' AS table_name, COUNT(*) AS row_count FROM pontos_agency UNION ALL SELECT 'pontos_calendar' AS table_name, COUNT(*) AS row_count FROM pontos_calendar UNION ALL SELECT 'pontos_calendardates' AS table_name, COUNT(*) AS row_count FROM pontos_calendardates UNION ALL SELECT 'pontos_frequencies' AS table_name, COUNT(*) AS row_count FROM pontos_frequencies UNION ALL SELECT 'pontos_routes' AS table_name, COUNT(*) AS row_count FROM pontos_routes UNION ALL SELECT 'pontos_shapes' AS table_name, COUNT(*) AS row_count FROM pontos_shapes UNION ALL SELECT 'pontos_stops' AS table_name, COUNT(*) AS row_count FROM pontos_stops UNION ALL SELECT 'pontos_stoptimes' AS table_name, COUNT(*) AS row_count FROM pontos_stoptimes UNION ALL SELECT 'pontos_trips' AS table_name, COUNT(*) AS row_count FROM pontos_trips;