Skip to content

Um simples teste para nossos integrantes da s3wf que irão trabalhar com GO.

Notifications You must be signed in to change notification settings

eduardofg87-tech-tests/godesafio-s3wf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Go Desafio S3wf

Um simples teste para nossos integrantes da s3wf que irão trabalhar com GO.

Iremos criar uma API SERVER para ser consumida por um APP.

A api terá que ser feita usando stdlib padrão de Go.

Algumas libs para tratar cors, session, rate limit, e JWT, banco de dados são todas permitidas permitidas menos frameworks full, mas libs sim.

O banco de dados a ser utilizado é o POSTGRESQL.

Endpoints que iremos desenvolver

Endpoint Method
/ping POST
/auth POST
/user POST
/user PUT
/user DELETE
/user/{:uuid} GET

Ping

O Ping é público, não terá controle somente para saber se nosso server está online.

Auth

Este endpoint irá possuir um header com Authorization e irá enviar via JSON login e senha em um method [POST]. Ele irá retornar um JSON quando der erro e um JSON com for sucesso.

HTTP/2 200

{  
   "status":"success",
   "message":"Usuario encontrado  e token gerado",
  "tokenjwt":"eyJhbGciOi-RkOM8Hjc5DYNJuqyEy3gvy_IMjcu2w-hl2yHilvPNP_UK0ocUxaKdsD5oS5fV-TYlfH_k",
   "expires":"2019-07-20",
   "tokenmsg":"use o token para acessar os endpoints!",
   "Login":{ 
      "id":4287,
      "uuiduser":"301cd1b2d60d5bd5f143c352dfdc0a4dd44517f0",
      "avatarurl":"http://mydomain.com/user/user.jpg",
      "avatartype":"image/jpeg",
      "name":"Junior S3WF",
      "datastart":"2018-11-05"
   }
}

HTTP/2 500

{  
   "status":"error",
   "message":"Usuário não pode ser autenticado!"
}

User

Este endpoint irá somente trazer informaçes do usurio como uuid, nome, cpf, email e sobrenome no formato JSON. Ele irá enviar um method [GET] passando no header o token e na url o uuid do usurio e irá receber um JSON.

O que é importante neste teste:

  • Organização do código

  • Utilizar boas práticas

  • Deixar sempre a regra de negócio o mais desacoplada possível

  • O JWT no é obrigatório, basta simular caso no consigam

  • Uma lib para rotas como belt ou gorillamux é aceitável

  • Criar os mocks de teste

  • Criar o banco de dados e tabelas fazer dump e colocar no projeto para que possamos validar e testar

boa sorte...

About

Um simples teste para nossos integrantes da s3wf que irão trabalhar com GO.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 66.5%
  • JavaScript 14.6%
  • Vue 9.5%
  • HTML 2.9%
  • Makefile 2.6%
  • Dockerfile 2.2%
  • CSS 1.7%