Interfejs API REST (Representational State Transfer) — czasami nazywany RESTful AP — to interfejs API, który używa żądań HTTP w celu uzyskania dostępu do zasobów i korzystania z nich.
Zasoby te są często reprezentowane w formacie JSON, chociaż w niektórych przypadkach używane są formaty XML, tekst i HTML. Interfejsy API REST stały się standardowym sposobem wymiany danych przez aplikacje w sieci za pomocą metod HTTP, takich jak GET, PUT, POST i DELETE. Ułatwiają tworzenie, odczytywanie, aktualizowanie i usuwanie zasobów potocznie zwanych operacjami CRUD.
Ten przewodnik wyjaśnia, jak korzystać z Node. JS do stworzenia prostego CRUD Restful API.
Za czym należy podążać
Upewnij się, że masz zainstalowany Node.js na swoim lokalnym komputerze. Uruchomić węzeł -v aby sprawdzić, czy węzeł. JS jest zainstalowany. To polecenie powinno zwrócić numer wersji.
Związane z: Jak zainstalować Node.js w systemie Windows
Powinieneś także mieć działającą instancję swojego ulubionego Edytor tekstu (np. kod VS).
Konfiguracja projektu
Utwórz folder dla swojej aplikacji i przejdź do niego. Na terminalu i w właśnie utworzonym katalogu zainicjuj pakiet.json biegiem npm inicj.
$ npm init -y
ten pakiet.json pomoże Ci zainstalować i zarządzać pakietami npm. ten -y flaga tworzy plik package.json przy użyciu opcji domyślnych bez konieczności konfigurowania poszczególnych szczegółów. Dane wyjściowe na twoim terminalu powinny wyglądać tak. Pamiętaj, że nazwa będzie się różnić w zależności od tego, jak nazwałeś swój folder.
Skonfiguruj serwer
Aby utworzyć serwer, najpierw zainstaluj Express.js i Nodemon. Express.js to węzeł. Framework Js, który został zaprojektowany, aby ułatwić tworzenie aplikacji internetowych i interfejsów API. Użyjesz go do skonfigurować serwer i punkty końcowe interfejsu API. Z drugiej strony Nodemon to narzędzie programistyczne, które zrestartuje serwer, gdy zmieni się kod aplikacji.
Uruchom następujące polecenie, aby zainstalować wyrazić oraz nodemon:
npm i wyrażam nodemon
Następnie, aby utworzyć serwer, utwórz plik i wywołaj go serwer.js następnie dodaj następujący kod.
// Wymagaj ekspresu
const express = require("ekspres");
// Zainicjuj ekspres
const aplikacja = express();
const PORT = 8080;
// przeanalizuj JSON
app.use (express.json());
// parsuj dane zakodowane w adresie URL
app.use (express.urlencoded({ rozszerzony: prawda }));
// utwórz serwer
app.listen (PORT, () => {
console.log(`Serwer uruchomiony na porcie ${PORT}`);
});
W powyższym kodzie, wymagaj ekspresowego w swoim serwer.js plik i zainicjuj go. Następnie skonfiguruj ekspres do analizowania danych zakodowanych w formacie JSON i URL. Na koniec utwórz serwer za pomocą słuchać() metoda z Express.
Związane z: Co to jest Express.js i dlaczego warto go używać?
Pierwsze kroki: Utwórz tablicę do przechowywania danych użytkownika
Dla uproszczenia nie będziesz używać bazy danych, ale raczej prostą tablicę użytkowników. W pliku app.js dodaj następujący kod po wierszu analizującym dane zakodowane w adresie URL.
stali użytkownicy = [{
id: 1,
imię: "Jane Doe",
wiek: "22",
},
{
id: 2,
imię: "Jan Kowalski",
wiek: "31",
}];
Związane z: Jak utworzyć bazę danych i kolekcję w MongoDB
Jak skonfigurować trasy w Express.js
Aby wykonywać operacje na swoich danych, musisz skonfigurować routing. Trasy określą, w jaki sposób aplikacja będzie odpowiadać na żądania skierowane do określonego punktu końcowego. Każda trasa ma metodę HTTP, adres URL i funkcję obsługi, która obsługuje żądanie i odpowiedź HTTP. Aby skonfigurować trasy, dodaj następujące elementy do swojego serwer.js plik po twoim użytkownicy szyk.
app.post('/create', (req, res) => {
// Utwórz użytkownika
});
app.get('/users', (req, res) => {
// Pobiera wszystkich użytkowników
});
app.get('/user/:userID', (req, res) => {
// Zwraca użytkownika według ID
});
app.put('/user/:userID', (req, res) => {
// Zaktualizuj użytkownika według identyfikatora
});
app.delete('/delete/:userID', (req, res) => {
// Usuń użytkownika według identyfikatora
});
app.delete('/users', (req, res) => {
// Usuń wszystkich użytkowników
});
Jak wykonywać operacje CRUD w węźle. Js
Musisz stworzyć funkcje, które będą manipulować danymi użytkownika i zwracać odpowiedź zgodnie z dopasowaną trasą. Funkcje te będą tworzyć, odczytywać, aktualizować i usuwać dane użytkownika.
Związane z: Jak wykonywać operacje CRUD w MongoDB
Jak stworzyć nowego użytkownika
Aby utworzyć nowego użytkownika, musisz:
- Sprawdź, czy treść żądania jest pusta — jeśli tak, wyślij odpowiedź o błędzie.
- Wyodrębnij dane użytkownika z treści żądania.
- Sprawdź poprawność danych użytkownika.
- Wypchnij dane użytkownika do tablicy.
Zauważ, że używasz tablicy tylko dla uproszczenia. W prawdziwym przypadku wchodziłbyś w interakcję z bazą danych.
Edytuj swoją trasę POST jak poniżej.
app.post("/create", (req, res) => {
// Sprawdź, czy treść żądania jest pusta
if (!Object.keys (req.body).length) {
return res.status (400).json({
komunikat: "Treść żądania nie może być pusta",
});
}
// Użyj destrukturyzacji obiektów, aby uzyskać nazwę i wiek
const { imię, wiek } = zam.ciało;
if (!imię || !wiek) {
res.status (400).json({
wiadomość: "Upewnij się, że wysłałeś zarówno imię, jak i wiek",
});
}
const nowyUżytkownik = {
id: użytkownicy.długość + 1,
Nazwa,
wiek,
};
próbować {
users.push (nowyUżytkownik);
res.status (201).json({
wiadomość: "Pomyślnie utworzono nowego użytkownika",
});
} złapać (błąd) {
res.status (500).json({
komunikat: "Nie udało się utworzyć użytkownika",
});
}
});
Jak czytać użytkowników
Aby pobrać wszystkich użytkowników, zwróć w odpowiedzi tablicę użytkowników.
app.get("/users", (req, res) => {
próbować {
res.status (200).json({
użytkownicy
});
} złapać (błąd) {
res.status (500).json({
komunikat: "Nie udało się pobrać wszystkich użytkowników",
});
}
});
Jeśli testujesz tę trasę za pomocą listonosza, powinieneś otrzymać tablicę użytkowników w treści odpowiedzi.
Aby pobrać tylko jednego użytkownika:
- Pobierz identyfikator użytkownika z parametru adresu URL.
- Posługiwać się znajdować() w celu identyfikacji konkretnych danych użytkownika, o które prosisz.
- Zwróć użytkownika w odpowiedzi.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (id);
próbować {
let user = users.find((user) => user.id id);
jeśli (!użytkownik) {
return res.status (404).json({
komunikat: „Nie znaleziono użytkownika”,
});
}
res.status (200).json({
użytkownik,
});
} złapać (błąd) {
res.status (500).json({
komunikat: "Nie udało się pobrać użytkownika",
});
}
});
Jak zaktualizować użytkowników
Aby zaktualizować użytkownika:
- Pobierz identyfikator użytkownika z adresu URL.
- Posługiwać się znajdować() aby sprawdzić, czy użytkownik istnieje.
- Posługiwać się indeks() aby uzyskać indeks użytkownika, do którego się odwołujemy.
- Użyj indeksu, aby edytować dane użytkownika za pomocą danych przesłanych przez treść żądania.
app.put("/users/:userID", (req, res) => {
próbować {
const id = parseInt (req.params.userID);
let user = users.find((user) => user.id id);
jeśli (!użytkownik) {
return res.status (404).json({
komunikat: „Nie znaleziono użytkownika”,
});
}
const userIDX = users.indexOf (użytkownik);
users[IDużytkownika].nazwa = żądanie.body.nazwa || użytkownicy[IDużytkownika].nazwa;
users[userIDX].wiek = żądanie.body.wiek || użytkownicy[IDużytkownika].wiek;
res.status (200).json({
komunikat: "Pomyślnie zaktualizowany użytkownik",
użytkownik,
});
} złapać (błąd) {
res.status (500).json({
komunikat: "Nie udało się pobrać użytkownika",
});
}
});
Jak usunąć użytkowników
Możesz usunąć jednego użytkownika lub wszystkich użytkowników.
Aby usunąć jednego użytkownika:
- Pobierz identyfikator użytkownika z adresu URL
- Posługiwać się znajdować() aby sprawdzić, czy użytkownik istnieje
- Posługiwać się znajdźIndeks() aby uzyskać indeks użytkownika, do którego się odwołujemy.
- Posługiwać się splatać() aby usunąć użytkownika z tego indeksu.
app.delete("/users/:userID", (req, res) => {
próbować {
const id = zad.params.userID;
let userIDX = users.findIndex((user) => user.id id);
jeśli (!userIDX) {
res.status (404).json({
komunikat: „Nie znaleziono użytkownika”,
});
}
users.splice (identyfikator użytkownika, 1);
res.status (200).json({
wiadomość: "Pomyślnie usunięty użytkownik",
użytkownicy,
});
} złapać (błąd) {
res.status (500).json({
komunikat: "Nie udało się usunąć użytkownika",
});
}
});
Aby usunąć wszystkich użytkowników, sklej całą tablicę.
app.delete("/users", (req, res) => {
próbować {
użytkownicy.splice (0, użytkownicy.długość);
res.status (200).json({
wiadomość: "Pomyślnie usunięto wszystkich użytkowników",
użytkownicy,
});
} złapać (błąd) {
res.status (500).json({
komunikat: "Nie udało się usunąć użytkowników",
x,
});
}
});
Dowiedz się więcej o RESTful API
W tym samouczku omówiono tworzenie podstawowego interfejsu API RESTful w węźle. JS. Nauczyłeś się już tworzyć serwer Express, konfigurować trasy i wreszcie tworzyć funkcje obsługi, które wchodzą w interakcję z danymi za pośrednictwem żądań/odpowiedzi HTTP.
Jest jednak kilka istotnych tematów, które nie zostały tutaj omówione, a które powinieneś zbadać dalej, w tym jak połączyć swoją aplikację z bazą danych, taką jak MongoDB i jak zabezpieczyć trasy.
MongoDB (od „humongous”) to wieloplatformowa baza danych zorientowana na dokumenty, używana jako alternatywa dla MySQL. Ale co to znaczy?
Czytaj dalej
- Programowanie
- JavaScript
- API
Mary Gathoni jest programistą z pasją do tworzenia treści technicznych, które mają nie tylko charakter informacyjny, ale także angażują. Kiedy nie koduje ani nie pisze, lubi spędzać czas z przyjaciółmi i przebywać na świeżym powietrzu.
Zapisz się do naszego newslettera
Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Kliknij tutaj, aby zasubskrybować