En REST (Representational State Transfer) API – ibland kallad en RESTful AP – är ett API som använder HTTP-förfrågningar för att komma åt och använda resurser.

Dessa resurser representeras ofta i JSON-format, men vid vissa tillfällen används XML, text och HTML-format. REST API: er har blivit ett standardsätt för applikationer att utbyta data över ett nätverk genom HTTP-metoder som GET, PUT, POST och DELETE. De underlättar att skapa, läsa, uppdatera och ta bort resurser som vanligtvis kallas CRUD-operationer.

Den här guiden utforskar hur du kan använda Node. JS för att skapa ett enkelt CRUD Restful API.

Vad du behöver följa med

Se till att du har Node.js installerat på din lokala dator. Springa nod -v för att kontrollera om Node. JS är installerat. Detta kommando bör returnera versionsnumret.

Relaterad: Hur man installerar Node.js på Windows

Du bör också ha en fungerande instans av din favorit textredigerare (t.ex. VS-kod).

Projektuppsättning

Skapa en mapp för din applikation och navigera till den. Initiera på terminalen och i katalogen du just skapade

instagram viewer
package.json genom att springa npm init.

$ npm init -y 

De package.json hjälper dig att installera och hantera npm-paket. De -y flaggan skapar filen package.json med standardalternativen utan att du behöver ställa in de individuella detaljerna. Utgången på din terminal ska se ut så här. Observera att namnet kommer att vara olika beroende på vad du döpte till din mapp.

Konfigurera servern

För att skapa en server, installera först Express.js och Nodemon. Express.js är en nod. Js ramverk som designades för att göra utvecklingen av webbapplikationer och API: er enklare. Du kommer att använda den till konfigurera servern och API-slutpunkterna. Nodemon å andra sidan är ett utvecklingsverktyg som kommer att starta om din server när din applikationskod ändras.

Kör följande kommando för att installera uttrycka och nodemon:

npm jag uttrycker nodemon 

Sedan, för att skapa din server, skapa en fil och anropa den server.js lägg sedan till följande kod.

// Kräv express
const express = require("express");
// Initiera express
const app = express();
const PORT = 8080;
// analysera JSON
app.use (express.json());
// analysera URL-kodad data
app.use (express.urlencoded({ extended: true }));
// skapa en server
app.listen (PORT, () => {
console.log(`Server körs på port ${PORT}`);
});

I ovanstående kod kräver uttryckligen din server.js fil och initiera den. Konfigurera sedan express för att analysera JSON- och URL-kodad data. Slutligen, skapa en server med hjälp av lyssna() metod från Express.

Relaterad: Vad är Express.js och varför ska du använda det?

Komma igång: Skapa en array för att lagra användardata

För enkelhets skull kommer du inte att använda en databas utan snarare en enkel användararray. I din app.js lägger du till följande kod efter raden som analyserar URL-kodad data.

const användare = [{
id: 1,
namn: "Jane Doe",
ålder: "22",
},
{
id: 2,
namn: "John Doe",
ålder: "31",
}];

Relaterad: Hur man skapar en databas och samling i MongoDB

Hur man ställer in rutter i Express.js

För att utföra operationer på dina data måste du ställa in routing. Rutter avgör hur din ansökan kommer att svara på förfrågningar som görs till en viss slutpunkt. Varje rutt har en HTTP-metod, en URL och en hanterarfunktion som hanterar HTTP-förfrågan och -svar. För att ställa in rutter, lägg till följande till din server.js fil efter din användare array.

app.post('/create', (req, res) => {
// Skapa en användare
});
app.get('/users', (req, res) => {
// Hämtar alla användare
});
app.get('/user/:userID', (req, res) => {
// Returnerar en användare efter ID
});
app.put('/user/:userID', (req, res) => {
// Uppdatera en användare med ID
});
app.delete('/delete/:användar-ID', (req, res) => {
// Ta bort en användare med ID
});
app.delete('/users', (req, res) => {
// Ta bort alla användare
});

Hur man utför CRUD-operationer i Node. Js

Du måste skapa funktionerna som kommer att manipulera användardata och returnera ett svar enligt den matchade rutten. Dessa funktioner kommer att skapa, läsa, uppdatera och radera användardata.

Relaterad: Hur man utför CRUD-operationer i MongoDB

Hur man skapar en ny användare

För att skapa en ny användare behöver du:

  • Kontrollera om förfrågningstexten är tom. Om så är fallet, skicka ett felsvar.
  • Extrahera användardata från begärandekroppen.
  • Validera användardata.
  • Skicka användardata till arrayen.

Observera att du använder en array endast för enkelhets skull. I ett verkligt scenario skulle du interagera med en databas.

Redigera din POST-rutt enligt nedan.

app.post("/create", (req, res) => {
// Kontrollera om förfrågan är tom
if (!Object.keys (req.body).length) {
return res.status (400).json({
meddelande: "Begäran kan inte vara tom",
});
}
// Använd objektdestrukturering för att få namn och ålder
const { namn, ålder } = req.body;
if (!namn || !ålder) {
res.status (400).json({
meddelande: "Se till att du skickat både namn och ålder",
});
}
const newUser = {
id: users.length + 1,
namn,
ålder,
};
Prova {
users.push (nyanvändare);
res.status (201).json({
meddelande: "Skapade en ny användare framgångsrikt",
});
} fånga (fel) {
res.status (500).json({
meddelande: "Det gick inte att skapa användare",
});
}
});

Hur man läser användare

För att hämta alla användare, returnera användararrayen i ditt svar.

app.get("/users", (req, res) => {
Prova {
res.status (200).json({
användare
});
} fånga (fel) {
res.status (500).json({
meddelande: "Det gick inte att hämta alla användare",
});
}
});

Om du testar den här rutten med postman bör du ta emot mängden användare i svarstexten.

Så här hämtar du bara en användare:

  • Hämta användar-ID från URL-parametern.
  • Använda sig av hitta() för att identifiera vilken specifik användardata du efterfrågar.
  • Skicka tillbaka användaren i svaret.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (id);
Prova {
låt användare = användare.find((användare) => användar.id-id);
if (!användare) {
return res.status (404).json({
meddelande: "Användaren hittades inte",
});
}
res.status (200).json({
användare,
});
} fånga (fel) {
res.status (500).json({
meddelande: "Det gick inte att hämta användaren",
});
}
});

Hur man uppdaterar användare

Så här uppdaterar du användaren:

  • Hämta användar-ID från URL: en.
  • Använda sig av hitta() för att kontrollera om användaren finns.
  • Använda sig av index för() för att få indexet för användaren som refereras till.
  • Använd indexet för att redigera användardata med data som skickas via förfrågan.
app.put("/users/:userID", (req, res) => {
Prova {
const id = parseInt (req.params.userID);
låt användare = användare.find((användare) => användar.id-id);
if (!användare) {
return res.status (404).json({
meddelande: "Användaren hittades inte",
});
}
const userIDX = users.indexOf (användare);
användare[användar-IDX].namn = req.body.name || användare[användar-IDX].namn;
användare[användar-IDX].age = req.body.age || användare[användar-IDX].ålder;
res.status (200).json({
meddelande: "Uppdaterad användare framgångsrikt",
användare,
});
} fånga (fel) {
res.status (500).json({
meddelande: "Det gick inte att hämta användaren",
});
}
});

Hur man tar bort användare

Du kan välja att ta bort en användare eller alla användare.

Så här tar du bort en användare:

  • Hämta användar-ID från URL: en
  • Använda sig av hitta() för att kontrollera om användaren finns
  • Använda sig av findIndex() för att få indexet för användaren som refereras till.
  • Använda sig av splitsa() för att ta bort användaren vid det indexet.
app.delete("/users/:userID", (req, res) => {
Prova {
const id = req.params.userID;
let userIDX = users.findIndex((användare) => user.id id);
if (!userIDX) {
res.status (404).json({
meddelande: "Användaren hittades inte",
});
}
users.splice (userIDX, 1);
res.status (200).json({
meddelande: "Raderad användare",
användare,
});
} fånga (fel) {
res.status (500).json({
meddelande: "Det gick inte att ta bort användare",
});
}
});

För att ta bort alla användare, skarva hela arrayen.

app.delete("/users", (req, res) => {
Prova {
users.splice (0, users.length);
res.status (200).json({
meddelande: "Ta bort alla användare",
användare,
});
} fånga (fel) {
res.status (500).json({
meddelande: "Det gick inte att ta bort användare",
x,
});
}
});

Läs mer om RESTful API: er

Denna handledning diskuterar hur man skapar ett grundläggande RESTful API i Node. JS. Du har lärt dig hur du skapar en Express-server, ställer in rutter och slutligen skapar hanterarfunktioner som interagerar med dina data genom HTTP-förfrågningar/svar.

Det finns dock några viktiga ämnen som inte tas upp här som du bör undersöka vidare, inklusive hur du ansluter din applikation till en databas som MongoDB och hur man säkrar rutter.

Hur en MongoDB-databas kan organisera dina data bättre

MongoDB (från "humongous") är en plattformsoberoende dokumentorienterad databas som används som ett alternativ till MySQL. Men vad betyder det?

Läs Nästa

Dela med sigTweetE-post
Relaterade ämnen
  • Programmering
  • JavaScript
  • API
Om författaren
Mary Gathoni (2 artiklar publicerade)

Mary Gathoni är en mjukvaruutvecklare med en passion för att skapa tekniskt innehåll som inte bara är informativt utan också engagerar. När hon inte kodar eller skriver tycker hon om att umgås med vänner och att vara utomhus.

Mer från Mary Gathoni

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Klicka här för att prenumerera