A api Permite o Cadastro e Busca de paises.
-
Funcionalidade 1
Cadastro de paises
: Para cadastrar um pais é necessario criar uma conta e fazer o login na api;
é necessario informar os seguintes dados no formato json: nome, capital,regiao, subregiao e area.
Exemplo:{ "area": 92.212 - Double, "capital": "Lisboa - String", "nome": "Portugal - String", "regiao": "Europa - String", "subRegiao": "Sul - String" }
-
Funcionalidade 2
Modificação de paises registrados
: Somente o usuario que cadastrou o pais ou um usuario administrador podera modificar o pais. é necessario enviar todos dados do objecto. Exemplo :
{ "area": 92.212 - Double, "capital": "Lisboa - String", "nome": "Portugal - String", "regiao": "Europa - String", "subRegiao": "Norte - String" }
-
Funcionalidade 3
Modificação parcial de paises registrados
: Somente o usuario que cadastrou o pais ou um usuario administrador podera modificar o pais. e não é necessario enviar todos dados do objecto, somente os atributos modificados. Exemplo :{ "area": 97.212 - Double, "capital": "Porto - String" }
-
Funcionalidade 4
Listar todos paises registrados
: Retorna todos paises registrados, acesso permitido para todos; -
Funcionalidade 5
Listar todos paises registrados de forma paginada
: Retorna todos paises registrados de forma paginada, tem os seguintes parametros : page = pagina inicial, size = elementos por pagina, sort = ordenação da lista por qualquer uma das suas propriedades, acesso permitido para todos; -
Funcionalidade 6
Pesquisar pais por nome
: Retorna dados de paises pelo nome passado por parametro, , acesso permitido para todos; -
Funcionalidade 7
Cadastro de usuarios
:A api possui dois tipos de perfil de usuario(Publico e Administrador), qualquer usuario publico pode registrar uma conta publica e somente usuarios administradores podem registrar outros administradores. é necessario informar os seguintes dados no formato json: first-name, last-name, email e password.
Exemplo:{ "firstName" : "Usuario", "lastName" : "Apelido", "email" : "[email protected]", "password" : "123456" }
-
Funcionalidade 8
Autenticação e Autorização de usuarios
: A api valida os dados do usuario(email e password) e gera um token de acesso e um "refresh token" com validade de 24 horas, para acessar os recursos protegidos da api é necessario usar o token de acesso gerado.
Java 17
Spring Boot
Spring Security
JWT
Postgresql
Swagger
Heroku
maven
Paradigma orientado a objectos e funcional
Link do projecto hospedado (https://tq-paises-api.herokuapp.com/paises/ )
- Clone este repositorio ou baixe o arquivo .zip;
- Abrir o projecto na sua IDE favorita;
- Rodar o comando
mvn clean install
no terminal;
- A documentação esta disponivel em (https://tq-paises-api.herokuapp.com/swagger-ui.html)
- Coleção Postman de todas operacoes e endpoints do projecto hospedado (https://www.getpostman.com/collections/d73f6b08f23110b23a66)
- Coleção Postman de todas operacoes e endpoints do projecto local (https://www.getpostman.com/collections/64c2b5731dadd64259d5)
-
Para efectuar o login na api é necessario informar os seguintes dados de autorização:
Dados da api:
-
Tipo de autorização
:Basic auth
; -
username
:myclientid
; -
password
:myclientsecret
;
Dados do usuario no formato x-www-form-urlencoded:
-
username
:email do usuario
; -
password
:password do usuario
; -
grant-type
:password
-
Para o projecto local é gerando um usuario administrador padrão com as seguintes credenciais:
username
:[email protected]
;password
:123456
;
Endpoint do login
-[POST]
oauth/token
Acesso aos recursos protegidos
Tipo de autorização
:Bearer token
;Bearer token
:token de acesso gerado pela api