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.