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.