Giter Site home page Giter Site logo

api-paises's Introduction

Api Paises

A api Permite o Cadastro e Busca de paises.

🔨 Funcionalidades do projecto

  • 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.

✔️ Técnicas e tecnologias utilizadas

  • Java 17
  • Spring Boot
  • Spring Security
  • JWT
  • Postgresql
  • Swagger
  • Heroku
  • maven
  • Paradigma orientado a objectos e funcional

📁 Acesso ao projecto hospedado

Link do projecto hospedado (https://tq-paises-api.herokuapp.com/paises/ )

📁 Acesso ao projecto local

  • Clone este repositorio ou baixe o arquivo .zip;

🛠️ Abrir e rodar o projecto

  • Abrir o projecto na sua IDE favorita;
  • Rodar o comando mvn clean install no terminal;

📄 Documentação do projecto

✉ Endpoints no Postman

🗝 Autenticação e Autorização

  • 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

🧍🏽‍♂️ Colaborador

api-paises's People

Contributors

tiquinho10 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.