API REST (Crud) baseada no projeto https://swapi.dev/ com dois recursos: Planets e Films (MVP):
-
O recurso Planets contém informações como: id, name, climate, diameter, population e films, além da data em que foi inserido (created) e a data da última alteração (edited).
-
O recurso Films contém informações como: id, release_date, director e planets, além da data em que foi inserido (created) e a data da última alteração (edited).
Um recurso Film é um único filme.
POST /api/films-- Cadastra um novo filmeGET /api/films/{id}-- Retorna um filme específico de acordo com o id passadoPUT /api/film/{id}-- Atualiza um filme específicoDELETE /api/films/{id}- Remove um filme específico de acordo com o id passado
Um recurso Planet é uma grande massa, planeta ou planetoide no Universo Star Wars, no momento 0 ABY.
POST /api/planets-- Cadastra um novo planetaGET /api/planets/{id}-- Retorna um planeta específico de acordo com o id passadoPUT /api/planets/{id}-- Atualiza um planeta específicoDELETE /api/planets/{id}-- Remove um planeta específico de acordo com o id passado
Clone o repositório
git clone git@github.com:alessandroibes/api_starwars.git
Para iniciar, basta executar o comando:
docker-compose up -dA Api estará disponível em: http://localhost:5000
Executando os testes por dentro do docker:
docker-compose run --rm test_api_starwars pytestPara verificar a cobertura do projeto:
docker-compose run --rm test_api_starwars pytest --cov-
Clone o repositório
git clone git@github.com:alessandroibes/api_starwars.git
-
Crie um ambiente virtual
-
Instale as dependências do projeto
pip install -r src/dependencies/requirements-dev.txt
-
Defina as variáveis de ambiente (crie um arquivo
.envdentro da pasta /src) -- ver arquivo.env.sample- DEPLOY_ENV
- LOG_LEVELS
- MONGO_URI
-
Inicie a aplicação (executar de dentro da pasta /src)
flask run
-
Verifique a saúde da aplicação
GET /health-status-- Se a aplicação estiver rodando você verá:
{ "service": "API Star Wars HealthCheck", "version": "1.0" }
Criar collections do Mongo (executar de dentro da pasta /src)
flask configure_collectionsRemover collections (executar de dentro da pasta /src)
flask drop_collectionsA documentação, pode ser acessada através dos endpoints /api/films/docs/swagger e /api/planets/docs/swagger:

