MEAN.JS - REST API

W tym rozdziale zobaczymy, jak nasza aplikacja współdziała za pośrednictwem REST API z naszą bazą danych przy użyciu metod HTTP. Termin REST oznacza REpresentational State Transfer, który jest stylem architektonicznym zaprojektowanym do komunikacji z usługami sieciowymi, a API to skrót od Application Program Interface, który umożliwia interakcję między aplikacjami.

Najpierw stworzymy RESTful API, aby pobrać wszystkie elementy, stworzyć element i usunąć element. Dla każdego elementu identyfikator _id zostanie wygenerowany automatycznie przez MongoDB. Poniższa tabela opisuje, w jaki sposób aplikacja powinna żądać danych z API -

Metoda HTTP Ścieżka URL Opis
DOSTAĆ

/api/students

Służy do pobrania wszystkich uczniów z kolekcji Student.
POCZTA

/api/students/send

Służy do tworzenia rekordu ucznia w kolekcji Student.
USUNĄĆ

/api/students/student_id

Służy do usuwania rekordu ucznia z kolekcji Student.

RESTful API Routes

Najpierw omówimy metodę Post w RESTful API Routes.

POCZTA

Najpierw utwórzmy rekord w kolekcji Student za pośrednictwem naszego REST API. Kod dla tego konkretnego przypadku można znaleźć w pliku server.js . W celach informacyjnych wklejono tutaj część kodu -

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!' });
   });
});

Wykonanie

Możesz pobrać kod źródłowy tej aplikacji w tym linku . Pobierz plik zip; wyodrębnij go w swoim systemie. Otwórz terminal i uruchom poniższe polecenie, aby zainstalować zależności modułów npm.

$ cd mean-demon-consuming_rest_api
$ npm install

Aby przeanalizować żądanie, potrzebowalibyśmy pakietu analizatora treści. Dlatego uruchom poniższe polecenie, aby uwzględnić je w swojej aplikacji.

npm install --save body-parser

Załączony kod źródłowy ma już tę zależność, dlatego nie ma potrzeby uruchamiania powyższego polecenia, jest to tylko dla twojej informacji.

Aby uruchomić aplikację, przejdź do nowo utworzonego katalogu projektu i uruchom za pomocą polecenia podanego poniżej -

npm start

Otrzymasz potwierdzenie, jak pokazano na poniższym obrazku -

Istnieje wiele narzędzi do testowania wywołań API, tutaj używamy jednego z przyjaznych dla użytkownika rozszerzeń dla Chrome o nazwie Postman REST Client .

Otwórz klienta REST Postman, wprowadź adres URL jako http://localhost:3000/api/students/send, wybierz metodę POST . Następnie wprowadź dane żądania, jak pokazano poniżej -

Zauważ, że wysyłamy dane nazwy jako x-www-form-urlencoded . Spowoduje to wysłanie wszystkich naszych danych do serwera Node jako ciągi zapytań.

Kliknij przycisk Wyślij , aby utworzyć rekord ucznia. Pojawi się komunikat o powodzeniu, jak pokazano poniżej -

DOSTAĆ

Następnie pobierzmy wszystkie rekordy uczniów z mongodb. Należy zapisać następującą trasę. Możesz znaleźć pełny kod w pliku 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
   });
});

Następnie otwórz klienta REST Postman, wprowadź adres URL jako

http://localhost:3000/api/students, wybierz metodę GET i kliknij przycisk Wyślij, aby pobrać wszystkich uczniów.

USUNĄĆ

Następnie zobaczmy, jak usunąć rekord z naszej kolekcji mongo za pomocą wywołania REST api.

Należy zapisać następującą trasę. Możesz znaleźć pełny kod w pliku 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' });
   });
});

Następnie otwórz klienta REST Postman, wprowadź adres URL jako

http://localhost:3000/api/students/5d1492fa74f1771faa61146d

(tutaj 5d1492fa74f1771faa61146d to rekord, który usuniemy z kolekcji Student).

Wybierz metodę USUŃ i kliknij przycisk Wyślij , aby pobrać wszystkich uczniów.

Możesz sprawdzić MongoDB pod kątem usuniętych danych, wykonując wywołanie GET http://localhost:3000/api/students/5d1492fa74f1771faa61146d.