Getting Started • API Endpoints • Ver Challenge
Resolução do backend-challenge da empresa Ame Digital
Clone o projeto:
git clone https://github.com/caiofrz/swapi-spring-OpenFeign.git
cd swapi-spring-OpenFeign
- Java 17+
- MongoDB
- Dica: você pode usar o Mongo DB Atlas
Use o application.properties
como referência para o seu arquivo de configuração. Lembre-se de substituir a URL para a URL do seu banco.
spring.data.mongodb.uri=mongodb+srv://sua_url
mvn spring-boot:run
mvn test
Here you can list the main routes of your API, and what are their expected request bodies.
route | description |
---|---|
GET /planets/{id} | recupera um planeta específico por id response details |
GET /planets/?name={nome_do_planete} | recupera um planeta específico por |
nome response details | |
GET /planets?page=0&size=3&sort=name,ASC | recupera todos os planetas cadastrados com paginação |
name = numero da pagina size = quantidade de itens sort,order = atributo de ordenação, direção da ordenação( |
|
ASC, DESC) response details | |
POST /planets | cadastra um novo planeta request details |
DELETE /planets/{id} | deleta um planeta específico por id |
GET /docs | documentação completa via Swagger |
RESPONSE
{
_id: "ab545bjh89kphjbr8"
"name": "Endor",
"weather": "temperate",
"terrain": "gas giant",
"appearancesNumber": 1
}
RESPONSE
{
"content": [
{
"_id": "65a93a706d10b577c808f4f0",
"name": "Terra",
"weather": "teste",
"terrain": "teste",
"appearancesNumber": 2
},
{
"_id": "65afbfc9413547755fe9ee73",
"name": "Tatooine",
"weather": "arid",
"terrain": "desert",
"appearancesNumber": 5
},
{
"_id": "65afc032413547755fe9ee74",
"name": "Bespin",
"weather": "temperate",
"terrain": "gas giant",
"appearancesNumber": 1
}
],
"pageable": {
"pageNumber": 0,
"pageSize": 3,
"sort": [
{
"direction": "ASC",
"property": "string",
"ignoreCase": false,
"nullHandling": "NATIVE",
"ascending": true,
"descending": false
}
],
"offset": 0,
"paged": true,
"unpaged": false
},
"totalPages": 1,
"totalElements": 3,
"last": true,
"size": 3,
"number": 0,
"sort": [
{
"direction": "ASC",
"property": "string",
"ignoreCase": false,
"nullHandling": "NATIVE",
"ascending": true,
"descending": false
}
],
"numberOfElements": 3,
"first": true,
"empty": false
}
REQUEST
{
"name": "Endor",
"weather": "temperate",
"terrain": "gas giant"
}
RESPONSE
{
_id: "ab545bjh89kphjbr8"
"name": "Endor",
"weather": "temperate",
"terrain": "gas giant",
"appearancesNumber": 1
}
- CRUD dos planetas
- Consultas paginadas e ordenadas
- Integração com API a pública do Star Wars usando Spring Cloud OpenFeign
Se você tiver algum feedback, por favor não deixe de dá-lo.