Skip to content

Resolução do desafio back end da empresa Ame Digital que consiste em criar uma API REST integrada a API publica do StarWars.

Notifications You must be signed in to change notification settings

caiofrz/swapi-spring-OpenFeign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

backend-challenge Ame Digital 💻

java spring mongo

Getting StartedAPI EndpointsVer Challenge

Resolução do backend-challenge da empresa Ame Digital

🚀 Getting started

Clone o projeto:

git clone https://github.com/caiofrz/swapi-spring-OpenFeign.git
cd swapi-spring-OpenFeign

Pre requisitos

  • Java 17+
  • MongoDB
  • Dica: você pode usar o Mongo DB Atlas

Configuração das variáveis de ambiente

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

Rodando o projeto

mvn spring-boot:run

Rodando os testes

mvn test

📍 API Endpoints

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

GET /planets/{id} | /planets/?name=Endor

RESPONSE

{
    _id: "ab545bjh89kphjbr8"
    "name": "Endor",
    "weather": "temperate",
    "terrain": "gas giant",
    "appearancesNumber": 1
}

GET /planets?page=0&size=3&sort=name,ASC

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
}

POST /planets

REQUEST

{
  "name": "Endor",
  "weather": "temperate",
  "terrain": "gas giant"
}

RESPONSE

{
  _id: "ab545bjh89kphjbr8"
  "name": "Endor",
  "weather": "temperate",
  "terrain": "gas giant",
  "appearancesNumber": 1
}

Funcionalidades

  • CRUD dos planetas
  • Consultas paginadas e ordenadas
  • Integração com API a pública do Star Wars usando Spring Cloud OpenFeign

Feedback

Se você tiver algum feedback, por favor não deixe de dá-lo.

Me contate através do github ou LinkedIn

About

Resolução do desafio back end da empresa Ame Digital que consiste em criar uma API REST integrada a API publica do StarWars.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published