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

instagram viewer

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.

Jak baza danych MongoDB może lepiej organizować Twoje dane

MongoDB (od „humongous”) to wieloplatformowa baza danych zorientowana na dokumenty, używana jako alternatywa dla MySQL. Ale co to znaczy?

Czytaj dalej

UdziałĆwierkaćE-mail
Powiązane tematy
  • Programowanie
  • JavaScript
  • API
O autorze
Mary Gathon (2 opublikowane artykuły)

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.

Więcej od Mary Gathoni

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ć