Een REST (Representational State Transfer) API, ook wel RESTful AP genoemd, is een API die HTTP-verzoeken gebruikt om toegang te krijgen tot bronnen en deze te gebruiken.

Deze bronnen worden vaak weergegeven in JSON-indeling, hoewel in sommige gevallen XML-, tekst- en HTML-indeling worden gebruikt. REST-API's zijn een standaardmanier geworden voor applicaties om gegevens via een netwerk uit te wisselen via HTTP-methoden zoals GET, PUT, POST en DELETE. Ze vergemakkelijken het maken, lezen, bijwerken en verwijderen van bronnen die gewoonlijk CRUD-bewerkingen worden genoemd.

Deze handleiding onderzoekt hoe u Node kunt gebruiken. JS om een ​​eenvoudige CRUD Restful API te maken.

Wat u moet volgen

Zorg ervoor dat Node.js op uw lokale computer is geïnstalleerd. Loop knoop -v om te controleren of Node. JS is geïnstalleerd. Deze opdracht zou het versienummer moeten retourneren.

Verwant: Hoe Node.js op Windows te installeren

Je zou ook een werkende instantie van je favoriet moeten hebben tekstverwerker (bijv. VS-code).

Projectconfiguratie

Maak een map voor uw toepassing en navigeer ernaar. Op de terminal en in de map die u zojuist hebt gemaakt, initialiseert u pakket.json door rennen npm init.

$ npm init -y 

De pakket.json helpt u bij het installeren en beheren van npm-pakketten. De -y flag maakt het bestand package.json aan met behulp van de standaardopties zonder dat u de individuele details hoeft in te stellen. De uitvoer op uw terminal zou er als volgt uit moeten zien. Houd er rekening mee dat de naam anders is, afhankelijk van hoe u uw map hebt genoemd.

De server instellen

Installeer eerst Express.js en Nodemon om een ​​server te maken. Express.js is een Node. Js-framework dat is ontworpen om de ontwikkeling van webapplicaties en API's gemakkelijker te maken. Je gaat het gebruiken om configureer de server en de API-eindpunten. Nodemon daarentegen is een ontwikkelingstool die uw server opnieuw zal opstarten wanneer uw applicatiecode verandert.

Voer de volgende opdracht uit om te installeren: nadrukkelijk en nodemon:

npm ik express nodemon 

Om vervolgens uw server te maken, maakt u een bestand aan en roept u het op server.js voeg dan de volgende code toe.

// Express vereist
const express = vereisen ("express");
// Express initialiseren
const-app = express();
const POORT = 8080;
// ontleden JSON
app.gebruik (express.json());
// ontleden URL-gecodeerde gegevens
app.use (express.urlencoded({ uitgebreid: true }));
// maak een server
app.luister (POORT, () => {
console.log(`Server draait op poort ${PORT}`);
});

In de bovenstaande code moet u uitdrukkelijk in uw server.js bestand en initialiseer het. Configureer vervolgens express om JSON- en URL-gecodeerde gegevens te ontleden. Maak ten slotte een server met behulp van de luister() methode van Express.

Verwant: Wat is Express.js en waarom zou je het gebruiken?

Aan de slag: een array maken om gebruikersgegevens op te slaan

Voor de eenvoud gebruikt u geen database, maar een eenvoudige gebruikersarray. Voeg in uw app.js de volgende code toe na de regel die URL-gecodeerde gegevens parseert.

const gebruikers = [{
identiteitsbewijs: 1,
naam: "Jane Doe",
leeftijd: "22",
},
{
identiteitsbewijs: 2,
naam: "John Doe",
leeftijd: "31",
}];

Verwant: Een database en verzameling maken in MongoDB

Routes instellen in Express.js

Om bewerkingen op uw gegevens uit te voeren, moet u routering instellen. Routes bepalen hoe uw toepassing reageert op verzoeken die aan een bepaald eindpunt zijn gedaan. Elke route heeft een HTTP-methode, een URL en een handlerfunctie die het HTTP-verzoek en -antwoord afhandelt. Om de routes in te stellen, voeg je het volgende toe aan je server.js bestand na uw gebruikers reeks.

app.post('/create', (req, res) => {
// Maak een gebruiker aan
});
app.get('/users', (req, res) => {
// Haalt alle gebruikers op
});
app.get('/gebruiker/:gebruikers-ID', (req, res) => {
// Retourneert een gebruiker op ID
});
app.put('/gebruiker/:gebruikers-ID', (req, res) => {
// Update een gebruiker op ID
});
app.delete('/delete/:userID', (req, res) => {
// Verwijder een gebruiker op ID
});
app.delete('/users', (req, res) => {
// Alle gebruikers verwijderen
});

CRUD-bewerkingen uitvoeren in Node. Js

U moet de functies maken die de gebruikersgegevens manipuleren en een antwoord retourneren volgens de overeenkomende route. Met deze functies worden gebruikersgegevens gemaakt, gelezen, bijgewerkt en verwijderd.

Verwant: CRUD-bewerkingen uitvoeren in MongoDB

Hoe maak je een nieuwe gebruiker aan

Om een ​​nieuwe gebruiker aan te maken, moet u:

  • Controleer of de hoofdtekst van het verzoek leeg is. Als dit het geval is, verzendt u een foutreactie.
  • Extraheer de gebruikersgegevens uit de hoofdtekst van de aanvraag.
  • Valideer de gebruikersgegevens.
  • Duw de gebruikersgegevens naar de array.

Merk op dat u een array alleen voor de eenvoud gebruikt. In een reëel scenario zou u communiceren met een database.

Bewerk uw POST-route zoals hieronder.

app.post("/create", (req, res) => {
// Controleer of de aanvraagtekst leeg is
if (!Object.keys (req.body).length) {
retourneert res.status (400).json({
bericht: "Verzoektekst mag niet leeg zijn",
});
}
// Gebruik objectvernietiging om naam en leeftijd te krijgen
const {naam, leeftijd} = req.body;
if (!naam || !leeftijd) {
res.status (400).json({
bericht: "Zorg ervoor dat je zowel naam als leeftijd hebt verzonden",
});
}
const nieuweGebruiker = {
id: gebruikers.lengte + 1,
naam,
leeftijd,
};
poging {
gebruikers.push (nieuwe gebruiker);
res.status (201).json({
bericht: "Er is een nieuwe gebruiker aangemaakt",
});
} vangst (fout) {
res.status (500).json({
bericht: "Kan gebruiker niet aanmaken",
});
}
});

Gebruikers lezen

Als u alle gebruikers wilt ophalen, retourneert u de array gebruikers in uw antwoord.

app.get("/users", (req, res) => {
poging {
res.status (200).json({
gebruikers
});
} vangst (fout) {
res.status (500).json({
bericht: "Kan niet alle gebruikers ophalen",
});
}
});

Als u deze route test met behulp van postbode, zou u de reeks gebruikers in de antwoordtekst moeten ontvangen.

Slechts één gebruiker ophalen:

  • Haal de gebruikers-ID op uit de URL-parameter.
  • Gebruiken vinden() om te identificeren welke specifieke gebruikersgegevens u opvraagt.
  • Retourneer de gebruiker in het antwoord.
app.get("/users/:userID", (req, res) => {
const id = parseInt (req.params.userID);
console.log (id);
poging {
laat user = users.find((user) => user.id id);
als (!gebruiker) {
retourneer res.status (404).json({
bericht: "Gebruiker niet gevonden",
});
}
res.status (200).json({
gebruiker,
});
} vangst (fout) {
res.status (500).json({
bericht: "Kan gebruiker niet ophalen",
});
}
});

Gebruikers bijwerken

Om de gebruiker bij te werken:

  • Haal de gebruikers-ID op uit de URL.
  • Gebruiken vinden() om te controleren of de gebruiker bestaat.
  • Gebruiken index van() om de index te krijgen van de gebruiker waarnaar wordt verwezen.
  • Gebruik de index om de gebruikersgegevens te bewerken met de gegevens die via de aanvraagtekst zijn verzonden.
app.put("/users/:userID", (req, res) => {
poging {
const id = parseInt (req.params.userID);
laat user = users.find((user) => user.id id);
als (!gebruiker) {
retourneer res.status (404).json({
bericht: "Gebruiker niet gevonden",
});
}
const userIDX = gebruikers.indexOf (gebruiker);
gebruikers[userIDX].name = req.body.name || gebruikers[userIDX].naam;
gebruikers[userIDX].age = req.body.age || gebruikers[userIDX].leeftijd;
res.status (200).json({
bericht: "Gebruiker succesvol bijgewerkt",
gebruiker,
});
} vangst (fout) {
res.status (500).json({
bericht: "Kan gebruiker niet ophalen",
});
}
});

Hoe gebruikers te verwijderen

U kunt ervoor kiezen om één gebruiker of alle gebruikers te verwijderen.

Om één gebruiker te verwijderen:

  • Haal de gebruikers-ID op uit de URL
  • Gebruiken vinden() om te controleren of de gebruiker bestaat
  • Gebruiken vindIndex() om de index te krijgen van de gebruiker waarnaar wordt verwezen.
  • Gebruiken splitsen() om de gebruiker bij die index te verwijderen.
app.delete("/users/:userID", (req, res) => {
poging {
const id = req.params.userID;
laat userIDX = gebruikers.findIndex((gebruiker) => gebruiker.id id);
if (!userIDX) {
res.status (404).json({
bericht: "Gebruiker niet gevonden",
});
}
gebruikers.splice (userIDX, 1);
res.status (200).json({
bericht: "Gebruiker succesvol verwijderd",
gebruikers,
});
} vangst (fout) {
res.status (500).json({
bericht: "Kan gebruiker niet verwijderen",
});
}
});

Om alle gebruikers te verwijderen, splitst u de hele array.

app.delete("/users", (req, res) => {
poging {
gebruikers.splice (0, gebruikers.lengte);
res.status (200).json({
bericht: "Alle gebruikers zijn verwijderd",
gebruikers,
});
} vangst (fout) {
res.status (500).json({
bericht: "Kan gebruikers niet verwijderen",
x,
});
}
});

Meer informatie over RESTful API's

In deze zelfstudie wordt besproken hoe u een basis-RESTful API maakt in Node. JS. U hebt geleerd hoe u een Express-server maakt, routes instelt en tot slot handlerfuncties maakt die met uw gegevens communiceren via HTTP-verzoeken/-antwoorden.

Er zijn echter enkele essentiële onderwerpen die hier niet worden behandeld en die u verder moet onderzoeken, waaronder hoe u uw toepassing kunt verbinden met een database zoals MongoDB en hoe u routes kunt beveiligen.

Hoe een MongoDB-database uw gegevens beter kan organiseren

MongoDB (van "humongous") is een platformonafhankelijke documentgeoriënteerde database die wordt gebruikt als alternatief voor MySQL. Maar wat betekent dat?

Lees volgende

DeelTweetenE-mail
Gerelateerde onderwerpen
  • Programmeren
  • JavaScript
  • API
Over de auteur
Mary Gathoni (2 artikelen gepubliceerd)

Mary Gathoni is een softwareontwikkelaar met een passie voor het maken van technische inhoud die niet alleen informatief maar ook boeiend is. Als ze niet aan het coderen of schrijven is, gaat ze graag met vrienden om en is ze graag buiten.

Meer van Mary Gathoni

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren