MEAN.JS - API REST
Neste capítulo, veremos nosso aplicativo interagindo por meio de uma API REST com nosso banco de dados usando métodos HTTP. O termo REST significa Transferência de Estado Representacional, que é um estilo de arquitetura projetado para se comunicar com serviços da web e API significa Interface de Programa de Aplicativo que permite aplicativos de interação uns com os outros.
Primeiro, criaremos a API RESTful para obter todos os itens, criar o item e excluir um item. Para cada item, _id será gerado automaticamente pelo MongoDB. A tabela abaixo descreve como o aplicativo deve solicitar dados da API -
Método HTTP | Caminho de URL | Descrição |
---|---|---|
PEGUE | /api/students |
Ele é usado para obter todos os alunos da coleção Student. |
POSTAR | /api/students/send |
É usado para criar um registro do aluno na coleção Aluno. |
EXCLUIR | /api/students/student_id |
É usado para excluir um registro de aluno da coleção Aluno. |
Rotas de API RESTful
Discutiremos primeiro o Post Method em RESTful API Routes.
POSTAR
Primeiro vamos criar um registro na coleção Student por meio de nossa API REST. O código para este caso específico pode ser encontrado no arquivo server.js . Para referência, uma parte do código é colada aqui -
app.post('/api/students/send', function (req, res) {
var student = new Student(); // create a new instance of the student model
student.name = req.body.name; // set the student name (comes from the request)
student.save(function(err) {
if (err)
res.send(err);
res.json({ message: 'student created!' });
});
});
Execução
Você pode baixar o código-fonte deste aplicativo neste link . Baixe o arquivo zip; extraia-o em seu sistema. Abra o terminal e execute o comando abaixo para instalar as dependências do módulo npm.
$ cd mean-demon-consuming_rest_api
$ npm install
Para analisar a solicitação, precisaríamos do pacote do analisador de corpo. Portanto, execute o comando abaixo para incluir em seu aplicativo.
npm install --save body-parser
O código-fonte anexado já possui essa dependência, portanto, não há necessidade de executar o comando acima, é apenas para sua informação.
Para executar o aplicativo, navegue até o diretório do projeto recém-criado e execute com o comando fornecido abaixo -
npm start
Você receberá uma confirmação conforme mostrado na imagem abaixo -
Existem muitas ferramentas para testar as chamadas de API, aqui estamos usando uma das extensões de usuário amigável para o Chrome chamada Postman REST Client .
Abra o Postman REST Client, insira o URL como http://localhost:3000/api/students/send, selecione o método POST . Em seguida, insira os dados da solicitação conforme mostrado abaixo -
Observe que estamos enviando os dados de nome como x-www-form-urlencoded . Isso enviará todos os nossos dados para o servidor Node como strings de consulta.
Clique no botão Enviar para criar um registro do aluno. Uma mensagem de sucesso aparecerá conforme mostrado abaixo -
PEGUE
A seguir, vamos obter todos os registros dos alunos do mongodb. A rota a seguir precisa ser escrita. Você pode encontrar o código completo no arquivo server.js .
app.get('/api/students', function(req, res) {
// use mongoose to get all students in the database
Student.find(function(err, students) {
// if there is an error retrieving, send the error.
// nothing after res.send(err) will execute
if (err)
res.send(err);
res.json(students); // return all students in JSON format
});
});
Em seguida, abra o Postman REST Client, insira a URL como
http://localhost:3000/api/students, selecione o método GET e clique no botão Enviar para obter todos os alunos.
EXCLUIR
A seguir, vamos ver como excluir um registro de nossa coleção mongo por meio da chamada da API REST.
A rota a seguir precisa ser escrita. Você pode encontrar o código completo no arquivo server.js .
app.delete('/api/students/:student_id', function (req, res) {
Student.remove({
_id: req.params.student_id
}, function(err, bear) {
if (err)
res.send(err);
res.json({ message: 'Successfully deleted' });
});
});
Em seguida, abra o Postman REST Client, insira a URL como
http://localhost:3000/api/students/5d1492fa74f1771faa61146d
(aqui 5d1492fa74f1771faa61146d é o registro que excluiremos da coleção Aluno).
Selecione o método DELETE e clique no botão Enviar para obter todos os alunos.
Você pode verificar o MongoDB para os dados excluídos, fazendo uma chamada GET para http://localhost:3000/api/students/5d1492fa74f1771faa61146d.