Utforme RESTful API-endepunkter
Lær de grunnleggende prinsippene for REST og utform ryddige og effektive API-endepunkter for ulike ressurser.
Utforme RESTful API-endepunkter er en gratis leksjon i Bootcamp i backendutvikling med Node.js på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med Node.js, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.
Introduksjon til RESTful API-er
Velkommen! I denne leksjonen skal vi se nærmere på hvordan man utformer ryddige og effektive API-endepunkter i tråd med REST-prinsippene. Det er avgjørende å forstå REST for å kunne bygge skalerbare webtjenester.
REST står for Representational State Transfer. Det er en arkitekturstil for nettverksbaserte applikasjoner som legger vekt på tilstandsløs kommunikasjon mellom klient og server.
Ressurser: RESTs substantiver
Ressurser er selve kjernen i REST. Tenk på ressurser som all informasjon eller alle data API-et kan tilby eller endre. Det er «tingene» API-et administrerer.
- En ressurs identifiseres av en unik URL (Uniform Resource Locator).
- De representeres vanligvis av substantiver, som
users,productsellerorders. - Bruk helst substantiv i flertall for samlinger av ressurser.
Handlinger med HTTP-metoder
Mens ressurser er substantiver, angis handlingene som utføres på dem, av standardiserte HTTP-metoder (også kalt verb). Disse metodene tilsvarer vanlige dataoperasjoner:
- GET: Hente data (lese)
- POST: Opprette nye data (opprette)
- PUT: Erstatte eksisterende data (oppdatere alt)
- PATCH: Delvis oppdatere eksisterende data (delvis oppdatering)
- DELETE: Fjerne data (slette)
Strukturere API-endepunktene
URL-en til et godt utformet endepunkt bør være intuitiv og forutsigbar. Den følger vanligvis dette mønsteret:
/api/<version>/<resource_name>Det er god praksis å bruke en versjon (som v1) for å håndtere fremtidige endringer i API-et. Bruk alltid substantiv i flertall i ressursnavn.
- Godt:
/api/v1/users - Dårlig:
/api/v1/getUsers
URL-er for samlinger og elementer
REST API-er skiller mellom en samling av ressurser og én enkelt ressurs i samlingen:
- URL for samling: Viser til en gruppe ressurser. For eksempel
/users(alle brukere). - URL for element: Viser til en bestemt ressurs. For eksempel
/users/123(brukeren med ID 123).
ID-en (:id i Express) er en unik identifikator for den bestemte ressursen.
Kommunisere med statuskoder
HTTP-statuskoder er avgjørende for at API-et skal kunne kommunisere resultatet av en forespørsel til klienten. De forteller klienten om forespørselen var vellykket, om det oppstod en feil, og hva feilen skyldes.
- 200 OK: Forespørselen var vellykket.
- 201 Created: Ressursen ble opprettet.
- 204 No Content: Forespørselen var vellykket, men det finnes ikke noe innhold å returnere (for eksempel ved DELETE).
- 400 Bad Request: Klienten sendte ugyldige data.
- 404 Not Found: Ressursen ble ikke funnet.
- 500 Internal Server Error: Feil på serversiden.
Utforming av API-endepunkt for brukere
La oss utforme endepunkter for en User-ressurs. Legg merke til hvordan HTTP-metoder og URL-er kombineres for å beskrive handlinger.
Prøv å kjøre dette eksempelet for å se rutene i praksis:
const express = require('express');
const app = express();
const port = 3000;
// Get all users
app.get('/api/v1/users', (req, res) => {
res.status(200).send('GET /api/v1/users: Retrieve all users');
});
// Create a new user
app.post('/api/v1/users', (req, res) => {
res.status(201).send('POST /api/v1/users: Create a new user');
});
// Get a specific user by ID
app.get('/api/v1/users/:id', (req, res) => {
res.status(200).send(`GET /api/v1/users/${req.params.id}: Retrieve user ${req.params.id}`);
});
// Update a specific user by ID
app.put('/api/v1/users/:id', (req, res) => {
res.status(200).send(`PUT /api/v1/users/${req.params.id}: Update user ${req.params.id}`);
});
// Delete a specific user by ID
app.delete('/api/v1/users/:id', (req, res) => {
res.status(204).send(`DELETE /api/v1/users/${req.params.id}: Delete user ${req.params.id}`);
});
app.listen(port, () => {
console.log(`User API running on http://localhost:${port}`);
});Utforming av API-endepunkt for produkter
Her er et annet eksempel for en Product-ressurs. Mønstrene forblir de samme, noe som gjør API-et enkelt å forstå og bruke for utviklere.
Kjør denne koden for å se et produktfokusert API:
const express = require('express');
const app = express();
const port = 3001; // Using a different port
// Get all products
app.get('/api/v1/products', (req, res) => {
res.status(200).send('GET /api/v1/products: Retrieve all products');
});
// Create a new product
app.post('/api/v1/products', (req, res) => {
res.status(201).send('POST /api/v1/products: Create a new product');
});
// Get a specific product by ID
app.get('/api/v1/products/:id', (req, res) => {
res.status(200).send(`GET /api/v1/products/${req.params.id}: Retrieve product ${req.params.id}`);
});
// Delete a specific product by ID
app.delete('/api/v1/products/:id', (req, res) => {
res.status(204).send(`DELETE /api/v1/products/${req.params.id}: Delete product ${req.params.id}`);
});
app.listen(port, () => {
console.log(`Product API running on http://localhost:${port}`);
});Beste praksis for ryddige URL-er
Følg disse anbefalte fremgangsmåtene for å sikre at API-et er brukervennlig og enkelt å vedlikeholde:
- Bruk substantiv i flertall: For samlinger (for eksempel
/products, ikke/product). - Unngå verb i URL-er: La HTTP-metodene definere handlingene (for eksempel
POST /users, ikke/createUser). - Bruk bindestreker: For bedre lesbarhet i ressursnavn med flere ord (for eksempel
/order-items). - Hold URL-ene enkle: Unngå dyp nøsting; spørringsparametere kan brukes til filtrering og sortering.
Test kunnskapene Deres om REST
Hvilket av de følgende endepunktene følger RESTful-prinsippene korrekt for å opprette et nytt produkt og hente et bestemt produkt?
Oppsummering: Utforming av RESTful-endepunkter
Godt jobbet! De har lært det grunnleggende om å utforme RESTful API-endepunkter. Husk disse viktigste punktene:
- Ressurser er substantivene og identifiseres av URL-er.
- HTTP-metoder (GET, POST, PUT, DELETE) definerer handlinger.
- Bruk substantiv i flertall for samlinger og bestemte ID-er for elementer.
- Kommuniser resultater ved hjelp av riktige HTTP-statuskoder.
- Streb etter ryddige og forutsigbare URL-er for å lage et brukervennlig API.
Dette grunnlaget vil hjelpe Dem med å bygge robuste og intuitive API-er!
Lær deg JavaScript med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 22
- Leksjoner
- 92
Ofte stilte spørsmål
Er leksjonen «Utforme RESTful API-endepunkter» gratis?
Ja – hele teksten i «Utforme RESTful API-endepunkter» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Bootcamp i backendutvikling med Node.js-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Bootcamp i backendutvikling med Node.js inneholder totalt 4 leksjoner.
Hva lærer jeg i «Utforme RESTful API-endepunkter»?
Lær de grunnleggende prinsippene for REST og utform ryddige og effektive API-endepunkter for ulike ressurser. Du øver på Bootcamp i backendutvikling med Node.js med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Bootcamp i backendutvikling med Node.js?
Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med Node.js på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Utforme RESTful API-endepunkter»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Bootcamp i backendutvikling med Node.js-leksjonen?
Ja. Alle Bootcamp i backendutvikling med Node.js-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Grunnlaget i Express.js-rammeverket
- Ruting og middleware i Express
- Utforme RESTful API-endepunkter
- Håndtering av forespørselsdata: body, query og params