En REST (Representational State Transfer) API – nogle gange omtalt som en RESTful AP – er en API, der bruger HTTP-anmodninger til at få adgang til og bruge ressourcer.
Disse ressourcer er ofte repræsenteret i JSON-format, selvom der i nogle tilfælde bruges XML, tekst og HTML-format. REST API'er er blevet en standard måde for applikationer at udveksle data over et netværk gennem HTTP-metoder som GET, PUT, POST og DELETE. De letter oprettelse, læsning, opdatering og sletning af ressourcer, der almindeligvis omtales som CRUD-operationer.
Denne vejledning udforsker, hvordan du kan bruge Node. JS for at skabe en simpel CRUD Restful API.
Hvad du skal følge med
Sørg for, at du har Node.js installeret på din lokale maskine. Løb node -v for at kontrollere, om Node. JS er installeret. Denne kommando skal returnere versionsnummeret.
Relaterede: Sådan installeres Node.js på Windows
Du bør også have en fungerende forekomst af din favorit tekst editor (f.eks. VS-kode).
Projektopsætning
Opret en mappe til din applikation, og naviger til den. Initialiser på terminalen og i den mappe, du lige har oprettet
package.json ved at løbe npm init.$ npm init -y
Det package.json vil hjælpe dig med at installere og administrere npm-pakker. Det -y flag opretter filen package.json ved at bruge standardindstillingerne uden at du behøver at konfigurere de individuelle detaljer. Outputtet på din terminal skulle se sådan ud. Bemærk, at navnet vil være forskelligt afhængigt af, hvad du navngav din mappe.
Konfigurer serveren
For at oprette en server skal du først installere Express.js og Nodemon. Express.js er en node. Js framework, der er designet til at gøre udviklingen af webapplikationer og API'er nemmere. Du vil bruge det til konfigurere serveren og API-endepunkterne. Nodemon på den anden side er et udviklingsværktøj, der genstarter din server, når din applikationskode ændres.
Kør følgende kommando for at installere udtrykke og nodemon:
npm jeg udtrykker nodemon
Dernæst, for at oprette din server, skal du oprette en fil og kalde den server.js tilføj derefter følgende kode.
// Kræv ekspres
const express = require("express");
// Initialiser express
const app = express();
const PORT = 8080;
// parse JSON
app.use (express.json());
// parse URL-kodede data
app.use (express.urlencoded({ extended: true }));
// opret en server
app.listen (PORT, () => {
console.log(`Server kører på port ${PORT}`);
});
I ovenstående kode skal du kræve udtrykkelig i din server.js fil og initialisere den. Konfigurer derefter Express til at parse JSON- og URL-kodede data. Til sidst skal du oprette en server ved hjælp af Lyt() metode fra Express.
Relaterede: Hvad er Express.js, og hvorfor skal du bruge det?
Kom godt i gang: Opret et array til at gemme brugerdata
For enkelheds skyld vil du ikke bruge en database, men snarere en simpel brugerarray. I din app.js skal du tilføje følgende kode efter linjen, der analyserer URL-kodede data.
const brugere = [{
id: 1,
navn: "Jane Doe",
alder: "22",
},
{
id: 2,
navn: "John Doe",
alder: "31",
}];
Relaterede: Sådan opretter du en database og samling i MongoDB
Sådan opsætter du ruter i Express.js
For at udføre operationer på dine data skal du konfigurere routing. Ruter afgør, hvordan din applikation vil reagere på anmodninger til et bestemt slutpunkt. Hver rute har en HTTP-metode, en URL og en behandlerfunktion, der håndterer HTTP-anmodningen og -svaret. For at konfigurere ruterne skal du tilføje følgende til din server.js fil efter din brugere array.
app.post('/create', (req, res) => {
// Opret en bruger
});
app.get('/users', (req, res) => {
// Henter alle brugere
});
app.get('/user/:userID', (req, res) => {
// Returnerer en bruger efter ID
});
app.put('/user/:userID', (req, res) => {
// Opdater en bruger efter ID
});
app.delete('/delete/:brugerID', (req, res) => {
// Slet en bruger efter ID
});
app.delete('/brugere', (req, res) => {
// Slet alle brugere
});
Sådan udføres CRUD-operationer i Node. Js
Du skal oprette de funktioner, der vil manipulere brugerdataene og returnere et svar i henhold til den matchede rute. Disse funktioner vil oprette, læse, opdatere og slette brugerdata.
Relaterede: Sådan udføres CRUD-operationer i MongoDB
Sådan opretter du en ny bruger
For at oprette en ny bruger skal du:
- Tjek, om anmodningens brødtekst er tom – hvis det er, send et fejlsvar.
- Udtræk brugerdataene fra anmodningens krop.
- Valider brugerdataene.
- Skub brugerdata til arrayet.
Bemærk, at du kun bruger et array til forenklingsformål. I et virkeligt tilfælde ville du interagere med en database.
Rediger din POST-rute som nedenfor.
app.post("/create", (req, res) => {
// Tjek om anmodningens brødtekst er tom
if (!Object.keys (req.body).length) {
returner res.status (400).json({
besked: "Anmodningstekst må ikke være tom",
});
}
// Brug objektdestrukturering for at få navn og alder
const { navn, alder } = req.body;
if (!navn || !alder) {
res.status (400).json({
besked: "Sørg for at du har sendt både navn og alder",
});
}
const newUser = {
id: users.length + 1,
navn,
alder,
};
prøve {
users.push (nyBruger);
res.status (201).json({
besked: "Oprettet en ny bruger",
});
} fange (fejl) {
res.status (500).json({
besked: "Kunne ikke oprette bruger",
});
}
});
Sådan læser du brugere
For at hente alle brugere skal du returnere brugerarrayet i dit svar.
app.get("/brugere", (req, res) => {
prøve {
res.status (200).json({
brugere
});
} fange (fejl) {
res.status (500).json({
besked: "Kunne ikke hente alle brugere",
});
}
});
Hvis du tester denne rute ved hjælp af postbud, bør du modtage rækken af brugere i svarteksten.
For at hente kun én bruger:
- Hent bruger-id'et fra URL-parameteren.
- Brug finde() for at identificere, hvilke specifikke brugerdata du anmoder om.
- Returner brugeren i svaret.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (id);
prøve {
lad bruger = brugere.find((bruger) => bruger.id id);
if (!bruger) {
returner res.status (404).json({
besked: "Brugeren blev ikke fundet",
});
}
res.status (200).json({
bruger,
});
} fange (fejl) {
res.status (500).json({
besked: "Kunne ikke hente bruger",
});
}
});
Sådan opdaterer du brugere
Sådan opdaterer du brugeren:
- Hent bruger-id'et fra URL'en.
- Brug finde() for at kontrollere, om brugeren eksisterer.
- Brug indeks af() for at få indekset for den bruger, der refereres til.
- Brug indekset til at redigere brugerdataene med de data, der sendes via anmodningsteksten.
app.put("/users/:userID", (req, res) => {
prøve {
const id = parseInt (req.params.userID);
lad bruger = brugere.find((bruger) => bruger.id id);
if (!bruger) {
returner res.status (404).json({
besked: "Brugeren blev ikke fundet",
});
}
const userIDX = users.indexOf (bruger);
brugere[brugerIDX].navn = req.body.name || brugere[brugerIDX].navn;
brugere[brugerIDX].age = req.body.age || brugere[brugerIDX].alder;
res.status (200).json({
besked: "Bruger blev opdateret med succes",
bruger,
});
} fange (fejl) {
res.status (500).json({
besked: "Kunne ikke hente bruger",
});
}
});
Sådan sletter du brugere
Du kan vælge at slette én bruger eller alle brugere.
Sådan sletter du én bruger:
- Hent bruger-id'et fra URL'en
- Brug finde() for at kontrollere, om brugeren eksisterer
- Brug findIndex() for at få indekset for den bruger, der refereres til.
- Brug splejse() for at slette brugeren ved det indeks.
app.delete("/users/:userID", (req, res) => {
prøve {
const id = req.params.userID;
lad brugerIDX = brugere.findIndex((bruger) => bruger.id id);
if (!brugerIDX) {
res.status (404).json({
besked: "Brugeren blev ikke fundet",
});
}
users.splice (brugerIDX, 1);
res.status (200).json({
besked: "Slettet bruger",
brugere,
});
} fange (fejl) {
res.status (500).json({
besked: "Kunne ikke slette bruger",
});
}
});
For at slette alle brugere skal du splejse hele arrayet.
app.delete("/brugere", (req, res) => {
prøve {
brugere.splice (0, brugere.længde);
res.status (200).json({
besked: "Slettet alle brugere",
brugere,
});
} fange (fejl) {
res.status (500).json({
besked: "Kunne ikke slette brugere",
x,
});
}
});
Lær mere om RESTful API'er
Denne vejledning diskuterer, hvordan man opretter en grundlæggende RESTful API i Node. JS. Du har lært, hvordan du opretter en Express-server, opsætter ruter og til sidst, opretter håndteringsfunktioner, der interagerer med dine data gennem HTTP-anmodninger/svar.
Der er dog nogle væsentlige emner, der ikke er dækket her, som du bør undersøge nærmere, herunder hvordan du forbinder din applikation til en database som MongoDB, og hvordan du sikrer ruter.
MongoDB (fra "humongous") er en dokumentorienteret database på tværs af platforme, der bruges som et alternativ til MySQL. Men hvad betyder det?
Læs Næste
- Programmering
- JavaScript
- API
Mary Gathoni er en softwareudvikler med en passion for at skabe teknisk indhold, der ikke kun er informativt, men også engagerende. Når hun ikke koder eller skriver, nyder hun at hænge ud med venner og være udendørs.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere