Estou brincando com o Nodejs e expresso criando uma pequena API de descanso. Minha pergunta é: qual é a melhor prática / melhor maneira de definir o status do código, bem como os dados de resposta?
Deixe-me explicar com um pouco de código (não colocarei o nó e o código expresso necessário para iniciar o servidor, apenas os métodos do roteador):
router.get('/users/:id', function(req, res, next) {
var user = users.getUserById(req.params.id);
res.json(user);
});
exports.getUserById = function(id) {
for (var i = 0; i < users.length; i++) {
if (users[i].id == id) return users[i];
}
};
O código abaixo funciona perfeitamente e, ao enviar uma solicitação com o Postman, recebo o seguinte resultado:
Como você pode ver, o status mostra 200, o que está OK. Mas essa é a melhor maneira de fazer isso? Existe um caso em que eu próprio precise definir o status, bem como o JSON retornado? Ou isso é sempre tratado por expresso?
Por exemplo, acabei de fazer um teste rápido e modifiquei levemente o método get acima:
router.get('/users/:id', function(req, res, next) {
var user = users.getUserById(req.params.id);
if (user == null || user == 'undefined') {
res.status(404);
}
res.json(user);
});
Como você pode ver, se o usuário não for encontrado na matriz, apenas definirei o status 404.
Recursos / conselhos para aprender mais sobre este tópico são bem-vindos.