➜ ~ node —version
v8.12.0
➜ ~ npm —version
6.4.1
MongoDB
Você pode instalar diretamente na sua máquina local www.mongodb.com/download-center, mas eu sugiro que você utilize o docker. Se você já tem o docker instalado, basta executar o comando abaixo.
docker run -d --name mongo -p 27017:27017 mongo:latest
Para iniciar, modo de desenvolvedor, basta executar o comando abaixo
npm run dev
Agora você tem um servidor rodando em http://0.0.0.0:9000 que pode ser utilizado para criar os seus mocks!
A nossa API é simples, mas mesmo aplicações simples devem nascer robustas e seguras. Por isso, vamos criar o nosso usuário e nos autenticar para utilizar as capacidades desta API.
Podemos usar o POSTMAN, mas prefiro seguir o exemplo com linha de comando. Particularmente, gosto muito do HTTPie.
http POST http://0.0.0.0:9000/users \
email=<USUARIO> \
password=<SENHA> \
access_token=<MASTER_KEY>
O retorno será algo parecido com isso:
HTTP/1.1 201 Created
{
"createdAt": "2018-10-06T12:09:29.101Z",
"email": "erick@cellani.com.br",
"id": "5bb4c3AAe0b0de664c48eAA5aAw14bbc0",
"name": "erick",
"picture": "https://gravatar.com/avatar/fe9b877639bfa4177613ee7daf73a4c8?d=identicon"
}
http -a <EMAIL>:<SENHA> \
POST http://0.0.0.0:9000/auth \
access_token=<MASTER_KEY>
O retorno será algo parecido com isso:
HTTP/1.1 201 Created
{
"token": "eyJhbGciOiJIUzI1BVisPS4cRDRIkpFIFA19",
"user": {
"createdAt": "2018-10-06T12:09:29.101Z",
"email": "erick@cellani.com.br",
"id": "5bb4c3AAe0b0de664c48eAA5aAw14bbc0",
"name": "erick",
"picture": "https://gravatar.com/avatar/fe9b877639bfa4177613ee7daf73a4c8?d=identicon"
}
}
Agora você pode usar o token eyJhbGciOiJIUzI1BVisPS4cRDRIkpFIFA19
para chamar as APIs protegidas.
O uso é muito simples. Vamos criar um novo mock:
http POST http://0.0.0.0:9000/mocks <<< ' {"access_token":"eyJhbGciOiJIUzI1BVisPS4cRDRIkpFIFA19", "body": {"teste":"teste"} }'
O retorno desta chamada será assim:
HTTP/1.1 201 Created
{
"body": {
"teste": "teste"
},
"createdAt": "2018-10-06T17:42:27.344Z",
"createdBy": {
"createdAt": "2018-10-06T12:09:29.101Z",
"email": "erick@cellani.com.br",
"id": "5bb4c3AAe0b0de664c48eAA5aAw14bbc0",
"name": "erick",
"picture": "https://gravatar.com/avatar/fe9b877639bfa4177613ee7daf73a4c8?d=identicon"
},
"id": "5bb8f403733cb3aa5810586a",
"updatedAt": "2018-10-06T17:42:27.344Z"
}
Pronto, você já pode utilizar o mock na sua aplicação, basta substituir a chamada original, por esta:
http GET http://0.0.0.0:9000/mocks/5bb8f403733cb3aa5810586a
Segue o retorno:
HTTP/1.1 200 OK
{
"teste": "teste"
}