En REST (Representational State Transfer) API – noen ganger referert til som en RESTful AP – er en API som bruker HTTP-forespørsler for å få tilgang til og bruke ressurser.

Disse ressursene er ofte representert i JSON-format, men noen ganger brukes XML, tekst og HTML-format. REST APIer har blitt en standard måte for programmer å utveksle data over et nettverk gjennom HTTP-metoder som GET, PUT, POST og DELETE. De forenkler opprettelse, lesing, oppdatering og sletting av ressurser ofte referert til som CRUD-operasjoner.

Denne veiledningen utforsker hvordan du kan bruke Node. JS for å lage en enkel CRUD Restful API.

Hva du trenger å følge med på

Sørg for at du har Node.js installert på din lokale maskin. Løpe node -v for å sjekke om Node. JS er installert. Denne kommandoen skal returnere versjonsnummeret.

I slekt: Hvordan installere Node.js på Windows

Du bør også ha en fungerende forekomst av favoritten din tekstredigerer (f.eks. VS-kode).

Prosjektoppsett

Opprett en mappe for applikasjonen din og naviger til den. På terminalen og i katalogen du nettopp opprettet, initialiser

instagram viewer
package.json ved å løpe npm init.

$ npm init -y 

De package.json vil hjelpe deg med å installere og administrere npm-pakker. De -y flagget oppretter filen package.json ved å bruke standardalternativene uten at du trenger å sette opp individuelle detaljer. Utgangen på terminalen din skal se slik ut. Merk at navnet vil være forskjellig avhengig av hva du kalte mappen din.

Sett opp serveren

For å opprette en server, installer først Express.js og Nodemon. Express.js er en node. Js-rammeverket som ble designet for å gjøre utviklingen av webapplikasjoner og API-er enklere. Du vil bruke det til konfigurere serveren og API-endepunktene. Nodemon på den annen side er et utviklingsverktøy som vil starte serveren din på nytt når applikasjonskoden endres.

Kjør følgende kommando for å installere uttrykke og nodemon:

npm jeg uttrykker nodemon 

Deretter, for å opprette serveren din, lag en fil og ring den server.js legg deretter til følgende kode.

// Krev ekspress
const express = require("express");
// Initialiser ekspress
const app = express();
const PORT = 8080;
// analysere JSON
app.use (express.json());
// analyser URL-kodede data
app.use (express.urlencoded({ utvidet: true }));
// opprette en server
app.listen (PORT, () => {
console.log(`Server kjører på port ${PORT}`);
});

I koden ovenfor, krever uttrykkelig i din server.js fil og initialiser den. Konfigurer deretter Express for å analysere JSON- og URL-kodede data. Til slutt oppretter du en server ved å bruke lytte() metode fra Express.

I slekt: Hva er Express.js og hvorfor bør du bruke det?

Komme i gang: Opprett en matrise for å lagre brukerdata

For enkelhets skyld vil du ikke bruke en database, men snarere en enkel brukerarray. I app.js legger du til følgende kode etter linjen som analyserer URL-kodede data.

const brukere = [{
id: 1,
navn: "Jane Doe",
alder: "22",
},
{
id: 2,
navn: "John Doe",
alder: "31",
}];

I slekt: Hvordan lage en database og samling i MongoDB

Hvordan sette opp ruter i Express.js

For å utføre operasjoner på dataene dine, må du sette opp ruting. Ruter vil avgjøre hvordan applikasjonen din vil svare på forespørsler til et bestemt endepunkt. Hver rute har en HTTP-metode, en URL og en behandlerfunksjon som håndterer HTTP-forespørselen og -svaret. For å sette opp rutene, legg til følgende i din server.js fil etter din brukere array.

app.post('/create', (req, res) => {
// Opprett en bruker
});
app.get('/users', (req, res) => {
// Henter alle brukere
});
app.get('/user/:userID', (req, res) => {
// Returnerer en bruker etter ID
});
app.put('/user/:userID', (req, res) => {
// Oppdater en bruker etter ID
});
app.delete('/delete/:brukerID', (req, res) => {
// Slett en bruker etter ID
});
app.delete('/users', (req, res) => {
// Slett alle brukere
});

Hvordan utføre CRUD-operasjoner i Node. Js

Du må lage funksjonene som vil manipulere brukerdataene og returnere et svar i henhold til ruten som matches. Disse funksjonene vil opprette, lese, oppdatere og slette brukerdata.

I slekt: Hvordan utføre CRUD-operasjoner i MongoDB

Hvordan opprette en ny bruker

For å opprette en ny bruker, må du:

  • Sjekk om forespørselsteksten er tom – hvis den er, send et feilsvar.
  • Trekk ut brukerdataene fra forespørselsteksten.
  • Valider brukerdataene.
  • Skyv brukerdataene til matrisen.

Merk at du bruker en matrise kun for enkelhets skyld. I et reelt scenario vil du samhandle med en database.

Rediger POST-ruten som nedenfor.

app.post("/create", (req, res) => {
// Sjekk om forespørselsteksten er tom
if (!Object.keys (req.body).length) {
return res.status (400).json({
melding: "Forespørselstekst kan ikke være tom",
});
}
// Bruk objektdestrukturering for å få navn og alder
const { navn, alder } = req.body;
if (!navn || !alder) {
res.status (400).json({
melding: "Sørg for at du har sendt både navn og alder",
});
}
const newUser = {
id: users.length + 1,
Navn,
alder,
};
prøv {
users.push (nyBruker);
res.status (201).json({
melding: "Opprettet en ny bruker",
});
} catch (feil) {
res.status (500).json({
melding: "Kunne ikke opprette bruker",
});
}
});

Hvordan lese brukere

For å hente alle brukere, returner brukermatrisen i svaret ditt.

app.get("/users", (req, res) => {
prøv {
res.status (200).json({
brukere
});
} catch (feil) {
res.status (500).json({
melding: "Kunne ikke hente alle brukere",
});
}
});

Hvis du tester denne ruten med postmann, bør du motta utvalget av brukere i svarteksten.

For å hente kun én bruker:

  • Få bruker-ID-en fra URL-parameteren.
  • Bruk finne() for å identifisere hvilke spesifikke brukerdata du ber om.
  • Returner brukeren i svaret.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (id);
prøv {
la bruker = brukere.finn((bruker) => bruker.id-id);
if (!bruker) {
return res.status (404).json({
melding: "Bruker ikke funnet",
});
}
res.status (200).json({
bruker,
});
} catch (feil) {
res.status (500).json({
melding: "Kunne ikke hente bruker",
});
}
});

Hvordan oppdatere brukere

Slik oppdaterer du brukeren:

  • Hent bruker-ID-en fra URL-en.
  • Bruk finne() for å sjekke om brukeren eksisterer.
  • Bruk oversikt over() for å få indeksen til brukeren det refereres til.
  • Bruk indeksen til å redigere brukerdataene med dataene sendt gjennom forespørselsteksten.
app.put("/users/:userID", (req, res) => {
prøv {
const id = parseInt (req.params.userID);
la bruker = brukere.finn((bruker) => bruker.id-id);
if (!bruker) {
return res.status (404).json({
melding: "Bruker ikke funnet",
});
}
const brukerIDX = users.indexOf (bruker);
brukere[brukerIDX].navn = req.body.name || brukere[brukerIDX].navn;
brukere[brukerIDX].age = req.body.age || brukere[brukerIDX].alder;
res.status (200).json({
melding: "Bruker er oppdatert",
bruker,
});
} catch (feil) {
res.status (500).json({
melding: "Kunne ikke hente bruker",
});
}
});

Slik sletter du brukere

Du kan velge å slette én bruker eller alle brukere.

Slik sletter du én bruker:

  • Hent bruker-ID-en fra URL-en
  • Bruk finne() for å sjekke om brukeren eksisterer
  • Bruk findIndex() for å få indeksen til brukeren det refereres til.
  • Bruk skjøte() for å slette brukeren på den indeksen.
app.delete("/users/:userID", (req, res) => {
prøv {
const id = req.params.userID;
la brukerIDX = brukere.finnIndex((bruker) => bruker.id-id);
if (!brukerIDX) {
res.status (404).json({
melding: "Bruker ikke funnet",
});
}
users.splice (brukerIDX, 1);
res.status (200).json({
melding: "Slettet bruker",
brukere,
});
} catch (feil) {
res.status (500).json({
melding: "Kunne ikke slette bruker",
});
}
});

For å slette alle brukerne, spleise hele matrisen.

app.delete("/users", (req, res) => {
prøv {
users.splice (0, users.length);
res.status (200).json({
melding: "Slettet alle brukere",
brukere,
});
} catch (feil) {
res.status (500).json({
melding: "Kunne ikke slette brukere",
x,
});
}
});

Lær mer om RESTful APIer

Denne opplæringen diskuterer hvordan du lager en grunnleggende RESTful API i Node. JS. Du har lært hvordan du oppretter en Express-server, setter opp ruter og til slutt lager behandlerfunksjoner som samhandler med dataene dine gjennom HTTP-forespørsler/svar.

Det er imidlertid noen viktige emner som ikke dekkes her som du bør undersøke videre, inkludert hvordan du kobler applikasjonen til en database som MongoDB og hvordan du sikrer ruter.

Hvordan en MongoDB-database kan organisere dataene dine bedre

MongoDB (fra "humongous") er en dokumentorientert database på tvers av plattformer som brukes som et alternativ til MySQL. Men hva betyr det?

Les Neste

DelekvitringE-post
Relaterte temaer
  • Programmering
  • JavaScript
  • API
Om forfatteren
Mary Gathoni (2 artikler publisert)

Mary Gathoni er en programvareutvikler med en lidenskap for å lage teknisk innhold som ikke bare er informativt, men også engasjerende. Når hun ikke koder eller skriver, liker hun å henge med venner og være utendørs.

Mer fra Mary Gathoni

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere