Skip to content

Eugeniosales/clean-architecture-poc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clean archicteture API POC

API Node.js que implementa um CRUD para gestão de funcionários.


Execução dos testes unitários com Docker

  1. Efetue o download do repositório e e entre na raiz do diretório:
$ git clone https://github.com/Eugeniosales/clean-archicteture-API-POC.git

$ cd clean-archicteture-API-POC/
  1. Construa a imagem docker e inicie os testes:
$ sudo docker build -t employee-api .

$ sudo docker run -p 3000:3000 -it employee-api

Utilização da API Employee

URL Base

https://9dn6csmncl.execute-api.us-east-1.amazonaws.com/dev

Todas as respostas tem o formaato:

{
    "data": "Conteúdo da resposta",
    "message": "Descrição da resposta"
}

As respostas subsequentes irão definir em detalhes o valor do campo data.

Listagem de funcionários

Definição

GET /employees

Resposta

  • 200 success. em caso de sucesso
{
    "data": [
        {
            "id": "22590ea0-57bd-11ec-85c7-3751d5c35a66",
            "age": 25,
            "name": "Gabriel",
            "role": "Analista de marketing"
        },
        {
            "id": "6cb6d680-57bd-11ec-a3ff-b51f63f6a451",
            "age": 24,
            "name": "Lennon",
            "role": "Analista de sistemas"
        }
    ],
    "message": "success."
}

Criação de funcionário

Definição

POST /employee

Headers

  • Content-Type: application/json

Body

  • "age":int idade do funcionário
  • "name":string nome do funcionário
  • "role":string cargo do funcionário

Resposta

  • 200 success. em caso de sucesso
{
    "data": {
        "id": "fdb73100-57d3-11ec-8974-a1d547655ef7",
        "age": 40,
        "name": "John Doe",
        "role": "Engineer"
    },
    "message": "success."
}

Encontrar funcionário específico

Definição

GET /employee

Params

  • "id": string identificador único do funcionário

Resposta

  • 200 success. em caso de sucesso
  • 404 not found. em caso do usuário não existir
{
    "data": {
        "id": "458a72e0-57d3-11ec-b3ea-03d123e4dbe8",
        "age": 40,
        "name": "John Doe",
        "role": "Engineer"
    },
    "message": "success."
}

Remoção de funcionário

Definição

DELETE /employee

Params

  • "id": string identificador único do funcionário

Resposta

  • 200 success. em caso de sucesso
  • 404 not found. em caso do usuário não existir
{
    "data": {},
    "message": "success."
}

Atualização de funcionário

Definição

PUT /employee

Params

  • "id":string identificador único do funcionário

Headers

  • Content-Type: application/json

Body

  • "age":int idade do funcionário
  • "name":string nome do funcionário
  • "role":string cargo do funcionário

Resposta

  • 200 success. em caso de sucesso
{
    "data": {
        "id": "458a72e0-57d3-11ec-b3ea-03d123e4dbe8",
        "age": 42,
        "name": "John Doe",
        "role": "Engineer"
    },
    "message": "success."
}

Observações

Clean Architecture

Logo

A arquitetura da aplicação seguiu o Clean Architecture. De acordo a figura acima, os módulos possuem a seguinte correspondência:

Infra

  • A API foi provisionada em um infraestura serverless com o Lambda e o DynamoDB (NoSQL) na AWS.
  • Para o provionamento da infraestrura foi utilizado o Serverless Framework.

Referências

About

Clean architecture Poc built with Node.js and AWS Lambda

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors