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.