Skip to content

gabrielclima/spring-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

REST API

Uma API REST escrita em Java.

Usando as seguintes ferramentas

  • Spring Boot como framework
  • Gradle como gerenciador de dependências e processo de build
  • Mockito e JUnit para testes
  • Hibernate para mapeamento de objeto relacional
  • H2 Database como banco de dados em memória

Build & Run

Para buildar o projeto e fazê-lo executar, apenas execute o comando

gradle clean build && java -jar build/libs/spring-rest-api-0.1.0.jar

Está aplicação também está hospedada no Heroku e você pode usá-la, basta utilizar a URL https://spring-rest-api-gabriel.herokuapp.com/ no lugar de localhost:8080

Endpoints

POST /register

Você poderá usar este endpoint para registar usuários.

Exemplo de request

$ curl -H "Content-Type: application/json" -X POST -d
{
	"name": "Nome usuário",
	"email" : "[email protected]",
	"password" : "senha#senha",
	"phones" : [
		{
			"ddd":"21",
			"phone":"1231231"
		}]
} localhost:8080/register

Response esperada

{
  "id": 1,
  "name": "Nome usuário",
  "email": "[email protected]",
  "phones": [
    {
      "ddd": "21",
      "phone": "1231231"
    }
  ],
  "password": "senha#senha",
  "created": "07-01-2017  22:32:46 PM GMT-02:00",
  "lastLogin": "07-01-2017 22:32:46 PM GMT-02:00",
  "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0ZUBnYWJycWVxZWxxMTIzIiwiaWF0IjoxNDgzODM1NTY2LCJleHAiOjE0ODM4MzU2MjZ9._pDPBXSvtdq4tBISWgBFcj9Bp8mePNoKqt-fSqETsFhvngFtIH6UcKQy33DWmqy7aMp6OJFsD_HulRdMj6qcFQ"
}

POST /login

Para gerar um novo token, caso sua sessão tenha expirado, você poderá usar este endpoint. O token gerado nesse endpoint só dura o tempo de 30 minutos.

Exemplo de request

$ curl -H "Content-Type: application/json" -X POST -d
{
	"email" : "[email protected]",
	"password" : "senha#senha"
} localhost:8080/login

Response esperada

{
  "id": 1,
  "name": "Nome usuário",
  "email": "[email protected]",
  "phones": [
    {
      "ddd": "21",
      "phone": "1231231"
    }
  ],
  "password": "senha#senha",
  "created": "07-01-2017  22:32:46 PM GMT-02:00",
  "lastLogin": "07-01-2017 22:32:46 PM GMT-02:00",
  "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0ZUBnYWJycWVxZWxxMTIzIiwiaWF0IjoxNDgzODM1NTY2LCJleHAiOjE0ODM4MzU2MjZ9._pDPBXSvtdq4tBISWgBFcj9Bp8mePNoKqt-fSqETsFhvngFtIH6UcKQy33DWmqy7aMp6OJFsD_1oij2oe1id1"
}

POST /profile

Neste endpoint, você pode obter o perfil de um usuário. Lembre-se de passar o token na header, com a chave 'Authorization'.

Exemplo de request

$ curl -H "Content-Type: application/json" -H "Authorization: token" -X POST -d
{
	"email" : "[email protected]"
} localhost:8080/profile

Response esperada

{
  "id": 1,
  "name": "Nome usuário",
  "email": "[email protected]",
  "phones": [
    {
      "ddd": "21",
      "phone": "1231231"
    }
  ],
  "password": "senha#senha",
  "created": "07-01-2017  22:32:46 PM GMT-02:00",
  "lastLogin": "07-01-2017 22:32:46 PM GMT-02:00",
  "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0ZXN0ZUBnYWJycWVxZWxxMTIzIiwiaWF0IjoxNDgzODM1NTY2LCJleHAiOjE0ODM4MzU2MjZ9._pDPBXSvtdq4tBISWgBFcj9Bp8mePNoKqt-fSqETsFhvngFtIH6UcKQy33DWmqy7aMp6OJFsD_1oij2oe1id1"
}

Test

A aplicação possui teste unitário. Você pode executá-los utilizando

$ gradle check

About

A Java REST application.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages