GRUD is Golang CRUD REST API using MongoDB and JWT security standard example.
- Docker 17.6.x
- Docker Compose 1.11.x
make docker-build
make docker-run
Access: http://localhost:8080/tvseries
make docker-test
POST /tvseries
To create TV Series record, do a post
HTTP request in /tvseries
endpoint
Token
This endpoint is protected and you should pass Authorization
header with token.
To get token, see Login
endpoint
Header:
Authorization: Bearer <token>
Payload:
{
"title": "Braking Bad",
"description": "Branking Bad é uma premiada série de televisão estadunidense criada e produzida por Vince Gilligan que retrata a vida do químico Walter White, um homem brilhante frustrado em dar aulas para adolescentes do ensino médio enquanto lida com um filho sofrendo de paralisia cerebral, uma esposa grávida e dívidas intermináveis. White, então, é diagnosticado com um cancro no pulmão - o que o leva a sofrer um colapso emocional e abraçar uma vida de crimes para pagar suas dívidas hospitalares e dar uma boa vida aos seus filhos. Walter resolve produzir metanfetamina com seu ex-aluno, Jesse Pinkman.",
"casting": [
{
"name": "Bryan Cranston"
},
{
"name": "Anna Gunn"
},
{
"name": "Aaron Paul"
}
],
"stars": 5
}
GET /tvseries
To read all TV Series available in our catalog, do a get
HTTP request in /tvseries
endpoint.
This endpoint is open
Reponse:
[
{
"code": "c0eb63ef-8570-4aad-82bd-79c36502e755",
"title": "Braking Bad",
"description": "Branking Bad é uma premiada série de televisão estadunidense criada e produzida por Vince Gilligan que retrata a vida do químico Walter White, um homem brilhante frustrado em dar aulas para adolescentes do ensino médio enquanto lida com um filho sofrendo de paralisia cerebral, uma esposa grávida e dívidas intermináveis. White, então, é diagnosticado com um cancro no pulmão - o que o leva a sofrer um colapso emocional e abraçar uma vida de crimes para pagar suas dívidas hospitalares e dar uma boa vida aos seus filhos. Walter resolve produzir metanfetamina com seu ex-aluno, Jesse Pinkman.",
"casting": [
{
"name": "Bryan Cranston"
},
{
"name": "Anna Gunn"
},
{
"name": "Aaron Paul"
}
],
"stars": 5
}
]
PUT /tvseries/code
To update a TV Series record, do a put
HTTP request in /tvseries/code
endpoint
Token
This endpoint is protected and you should pass Authorization
header with token.
To get token, see Login
endpoint
Code
The code
is returned in GET /tvseries
endpoint
Header:
Authorization: Bearer <token>
Payload:
{
"title": "Braking Bad",
"description": "Branking Bad é uma premiada série de televisão estadunidense criada e produzida por Vince Gilligan que retrata a vida do químico Walter White, um homem brilhante frustrado em dar aulas para adolescentes do ensino médio enquanto lida com um filho sofrendo de paralisia cerebral, uma esposa grávida e dívidas intermináveis. White, então, é diagnosticado com um cancro no pulmão - o que o leva a sofrer um colapso emocional e abraçar uma vida de crimes para pagar suas dívidas hospitalares e dar uma boa vida aos seus filhos. Walter resolve produzir metanfetamina com seu ex-aluno, Jesse Pinkman.",
"casting": [
{
"name": "Bryan Cranston"
},
{
"name": "Anna Gunn"
},
{
"name": "Aaron Paul"
},
{
"name": "Lohan Bodevan"
}
],
"stars": 5
}
DELETE /tvseries/code
To delete a TV Series record, do a delete
HTTP request in /tvseries/code
endpoint
Token
This endpoint is protected and you should pass Authorization
header with token.
To get token, see Login
endpoint
Code
The code
is returned in GET /tvseries
endpoint
Header:
Authorization: Bearer <token>
POST /login
To autheticate yourself on API, do a post
HTTP request in /login
endpoint
Payload:
{
"email": "admin@example.com",
"password": "somecoolpassword"
}
PS.: This repository do not have DB seeds.
You need to create users
document in your MongoDB instance with email
and sha256 encrypted password
There are environment and collection for Postman in docs
folder to facilitate play with api.