Modelo de API RESTful em Node.JS com Express, utilizando autenticação via tokens JWT (JSON Web Token).
Toda comunicação possui respostas padrão para mensagens de erro:
HTTP Status: 400, 401, 500, 503, etc.
{
"mensagem": "mensagem de retorno"
}
Cadastro de usuários para autenticação e consulta.
Envio:
{
"nome": "Nome usuário",
"email": "[email protected]",
"senha": "12345",
"telefones": [
{ "ddd": "11", "numero": "12345678" },
{ "ddd": "12", "numero": "987654321" }
]
}
Resposta:
HTTP Status: 201 Headers: Location /usuarios/[id_usuario]
(id_usuario vem preenchido com o id do usuário criado)
{
"id": "abcdef1234567890abcdef12",
"nome": "Nome usuário",
"email": "[email protected]",
"telefones": [
{ "ddd": "11", "numero": "12345678" },
{ "ddd": "12", "numero": "987654321" }
],
"data_criacao": "2016-04-10T12:25:32Z",
"data_atualizacao": "2016-04-10T12:25:32Z"
}
Autenticação do usuário para obter o token.
Envio:
{
"email": "[email protected]",
"senha": "supersecreta"
}
Resposta:
HTTP Status: 200
{
"id": "abcdef1234567890abcdef12",
"nome": "Nome usuário",
"email": "[email protected]",
"telefones": [
{ "ddd": "11", "numero": "12345678" },
{ "ddd": "12", "numero": "987654321" }
],
"data_criacao": "2016-04-10T12:25:32Z",
"data_atualizacao": "2016-04-10T12:25:32.000Z",
"ultimo_login": "2016-04-10T12:29:05.000Z",
"token": "abcdef01234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef.01234567890abcdef01234567890"
}
Obtém os dados do usuário solicitado.
Envio:
Headers: Authorization: Bearer [token]
(token deve ser preenchido com o token de autorização do usuário, obtido na autenticação)
Resposta:
{
"id": "abcdef1234567890abcdef12",
"nome": "Nome usuário",
"email": "[email protected]",
"telefones": [
{ "ddd": "11", "numero": "12345678" },
{ "ddd": "12", "numero": "987654321" }
],
"data_criacao": "2016-04-10T12:25:32Z",
"data_atualizacao": "2016-04-10T12:25:32.000Z",
"ultimo_login": "2016-04-10T12:29:05.000Z",
"token": "abcdef01234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef01234567890abcdef.01234567890abcdef01234567890"
}