API dos planetas de Star Wars para o teste da B2W.
- Como utilizar
- Tecnologias
- Rodar com o Docker
- Rodar Testes
- Lista de Serviços
- Ciclo de desenvolvimento
- Licença
Voce pode utilizar a SWAPI no endereço http://www.itsadeadh2.com/projects/swapi/ ou localmente seguindo o passo a passo de como rodá-la em seu ambiente.
- Com o docker e docker compose instalados, rode a aplicação com o comando
docker-compose up --build
- Rode a aplicação com o docker-compose, como descrito na seção anterior
- Rode os testes com o comando
docker-compose exec -e NODE_ENV=test api npm run test
PS: O motivo de ser necessário rodar a aplicação em modo desenvolvimento anteriormente é para que a mesma venha a subir o banco de dados mongo através do docker, facilitando assim o processo de teste da aplicação.
Caminho | Método | Status Code | Descricao |
---|---|---|---|
/ |
GET |
200 | Retorna informações sobre a api |
Caminho | Método | Status Code | Descricao |
---|---|---|---|
/planets |
POST |
201 | Cria um planeta |
/planets |
GET |
200 | Lista todos os planetas |
/planets/:id |
GET |
200 | Retorna um planeta específico por id |
/planets/:id |
DELETE |
200 | Apaga um planeta |
curl -X POST \
http://www.itsadeadh2.com/projects/swapi/planets \
-H 'Content-Type: application/json' \
-H 'x-auth-token: seuauthtoken' \
-d '{
"nome": "Yav",
"clima": "árido",
"terreno": "rochoso"
}'
Retorna
{
"_id": "5da0c33fa194590468fac938",
"nome": "Yavin IV",
"clima": "árido",
"terreno": "rochoso",
"qtdeAparicoes": 1,
"__v": 0
}
Sim, se o usuario faz um request cujo nome esteja "proximo o suficiente" de algum planeta da SWAPI, a API automaticamente selecionará este planeta para ele, evitando tentativas desnecessárias.
curl -X GET \
http://www.itsadeadh2.com/projects/swapi/planets' \
-H 'Content-Type: application/json' \
-H 'x-auth-token: seuauthtoken'
Retorna
[
{
"_id": "5da0c33fa194590468fac938",
"nome": "Yavin IV",
"clima": "árido",
"terreno": "rochoso",
"qtdeAparicoes": 1,
"__v": 0
},
{
"_id": "5da0c5bb4c147f048f12a388",
"nome": "Coruscant",
"clima": "Quente",
"terreno": "rochoso",
"qtdeAparicoes": 4,
"__v": 0
},
{
"_id": "5da0c5eb4c147f048f12a389",
"nome": "Alderaan",
"clima": "Tropical?",
"terreno": "plano",
"qtdeAparicoes": 2,
"__v": 0
}
]
curl -X GET \
http://www.itsadeadh2.com/projects/swapi/planets/5da0c5bb4c147f048f12a388 \
-H 'Content-Type: application/json' \
-H 'x-auth-token: seuauthtoken'
Retorna
{
"_id": "5da0c5bb4c147f048f12a388",
"nome": "Coruscant",
"clima": "Quente",
"terreno": "rochoso",
"qtdeAparicoes": 4,
"__v": 0
}
curl -X DELETE \
http://www.itsadeadh2.com/projects/swapi/planets/5da0c5bb4c147f048f12a388 \
-H 'Content-Type: application/json' \
-H 'x-auth-token: seuauthtoken'
Retorna
{
"_id": "5da0c5bb4c147f048f12a388",
"nome": "Coruscant",
"clima": "Quente",
"terreno": "rochoso",
"qtdeAparicoes": 4,
"__v": 0
}
Você pode pesquisar os planetas pelo nome utilizando o parametro name como descrito abaixo
curl -X GET \
'http://www.itsadeadh2.com/projects/swapi/planets?nome=alderaan' \
-H 'Content-Type: application/json' \
-H 'x-auth-token: seuauthtoken'
Que te retornaria
[
{
"_id": "5da0ea80e0ba28001c989638",
"nome": "Alderaan",
"clima": "árido",
"terreno": "rochoso",
"qtdeAparicoes": 2,
"__v": 0
}
]
Você também pode paginar os resultados de sua pesquisa com os parametros page e perPage, que seriam a página que você quer e a quantidade de resultados por página respectivamente
curl -X GET \
'http://www.itsadeadh2.com/projects/swapi/planets?page=1&perPage=1' \
-H 'Content-Type: application/json' \
-H 'x-auth-token: seuauthtoken'
Que te retornaria
[
{
"_id": "5da0ea80e0ba28001c989638",
"nome": "Alderaan",
"clima": "árido",
"terreno": "rochoso",
"qtdeAparicoes": 2,
"__v": 0
}
]
Caminho | Método | Status Code | Descricao |
---|---|---|---|
/users |
POST |
201 | Registra um usuario |
curl -X POST \
http://www.itsadeadh2.com/projects/swapi/users \
-H 'Content-Type: application/json' \
-d '{
"email": "[email protected]",
"senha": "echo3echo7"
}'
Retorna
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZGEwY2E2NzRjMTQ3ZjA0OGYxMmEzOGEiLCJlbWFpbCI6Imx1a2luaG9za3lkZWxsYXNAYWxsaWFuY2UuZ292IiwiaWF0IjoxNTcwODE4NjYzfQ.6q52371IOzBt-Rg8cRRLkTkxmNVN7pgqPCCznFnlhNc"
}
Caminho | Método | Status Code | Descricao |
---|---|---|---|
/auth |
POST |
200 | Retorna token de acesso a um determinado usuario |
curl -X POST \
http://www.itsadeadh2.com/projects/swapi/auth \
-H 'Content-Type: application/json' \
-d '{
"email": "[email protected]",
"senha": "echo3echo7"
}'
Retorna
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZGEwY2E2NzRjMTQ3ZjA0OGYxMmEzOGEiLCJlbWFpbCI6Imx1a2luaG9za3lkZWxsYXNAYWxsaWFuY2UuZ292IiwiaWF0IjoxNTcwODE4ODMyfQ.tefFCYnFx31LVhV0Ql0TCFdVxJ2xyMWhVucHyMzohe8"
}
Para ter uma noção melhor de como a API foi desenvolvida, basta checar as issues/milestones do projeto aqui
This project is under the MIT license.