Edge computing met Cloudflare Workers en Deno · Les

RESTful API's ontwerpen

Plan en structureer RESTful API-eindpunten, methoden en gegevensmodellen die geschikt zijn voor implementatie aan de edge.

Les 1 van 311 stappen

RESTful API's ontwerpen is een gratis Edge computing met Cloudflare Workers en Deno-les op CoddyKit. Dit is les 1 van 3. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Edge computing met Cloudflare Workers en Deno. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 3 lessen.

Introductie tot RESTful API's

Welkom! In deze les leer je over RESTful API's, een fundamentele manier om webservices te ontwerpen. REST staat voor Representational State Transfer.

Je kunt een API zien als een menu in een restaurant. Je doet een aanvraag (je bestelt eten) en de keuken (de server) stuurt een antwoord terug (je maaltijd). REST definieert een aantal regels voor de manier waarop deze communicatie via internet moet verlopen.

De belangrijkste REST-principes

RESTful API's zijn gebaseerd op enkele kernideeën:

  • Resources: Alles is een 'resource' (bijvoorbeeld een gebruiker of een product).
  • Unieke URI's: Elke resource heeft een uniek adres (een URL of URI).
  • Standaardmethoden: HTTP-methoden (GET, POST, PUT, DELETE) worden gebruikt om acties op resources uit te voeren.
  • Statelessness: Elke aanvraag van een client aan een server moet alle informatie bevatten die nodig is om de aanvraag te begrijpen. De server bewaart de 'sessie'-status van de client niet tussen aanvragen.

Resources zijn zelfstandige naamwoorden

Denk bij het ontwerpen van je API na over de 'dingen' die je applicatie beheert. Deze 'dingen' zijn je resources.

Als je bijvoorbeeld een API voor e-commerce bouwt, kunnen je resources het volgende omvatten:

  • /products
  • /users
  • /orders
  • /categories

Let erop dat dit allemaal meervoudige zelfstandige naamwoorden zijn. Dit is een veelgebruikte en aanbevolen werkwijze bij RESTful-ontwerp.

HTTP-methoden: de werkwoorden

HTTP-methoden vertellen de server welke actie je op een resource wilt uitvoeren. Ze zijn vergelijkbaar met werkwoorden in een zin:

  • GET: Gegevens ophalen (bijvoorbeeld een product ophalen of een lijst met gebruikers ophalen).
  • POST: Nieuwe gegevens maken (bijvoorbeeld een nieuwe gebruiker maken of een nieuw product toevoegen).
  • PUT: Bestaande gegevens bijwerken (vervangt een volledige resource).
  • PATCH: Bestaande gegevens gedeeltelijk bijwerken (werkt specifieke velden van een resource bij).
  • DELETE: Gegevens verwijderen (bijvoorbeeld een product verwijderen).

GET: voorbeeld van gegevens ophalen

De methode GET wordt gebruikt om gegevens op te vragen van een opgegeven resource. Deze methode mag nooit neveneffecten hebben (de gegevens op de server mogen dus niet worden gewijzigd).

Probeer deze eenvoudige Deno-server uit te voeren. Open vervolgens http://localhost:8000/products in je browser om de uitvoer te bekijken.

import { serve } from "https://deno.land/std/http/server.ts";

serve(async (req) => {
  const url = new URL(req.url);

  if (req.method === "GET" && url.pathname === "/products") {
    const products = [
      { id: 1, name: "Wireless Mouse", price: 25.99 },
      { id: 2, name: "Mechanical Keyboard", price: 79.99 }
    ];
    return new Response(JSON.stringify(products), {
      headers: { "Content-Type": "application/json" }
    });
  }

  return new Response("Not Found", { status: 404 });
}, { port: 8000 });

console.log("Server running on http://localhost:8000");

POST: voorbeeld van gegevens maken

De POST-methode wordt gebruikt om een entiteit naar de opgegeven resource te sturen. Dit leidt vaak tot een statuswijziging of het aanmaken van een nieuwe resource.

In dit voorbeeld ziet u hoe een Deno-server een POST-aanvraag kan verwerken om een nieuw product aan te maken. Gewoonlijk stuurt u JSON-gegevens mee in de body van de aanvraag.

import { serve } from "https://deno.land/std/http/server.ts";

serve(async (req) => {
  const url = new URL(req.url);

  if (req.method === "POST" && url.pathname === "/products") {
    try {
      const newProduct = await req.json();
      // In a real application, you'd save newProduct to a database.
      // For this example, we'll just log it and return a mock ID.
      console.log("Received new product:", newProduct);
      return new Response(JSON.stringify({ ...newProduct, id: 3 }), {
        status: 201, // 201 Created
        headers: { "Content-Type": "application/json" }
      });
    } catch (e) {
      return new Response("Invalid JSON payload", { status: 400 });
    }
  }

  return new Response("Method Not Allowed", { status: 405 });
}, { port: 8000 });

console.log("Server running on http://localhost:8000");

Endpointpaden ontwerpen

Duidelijke en consistente endpointpaden (URI's) zijn essentieel voor een goede API. Hier volgen enkele aanbevolen werkwijzen:

  • Gebruik meervoudige zelfstandige naamwoorden: /users, niet /user.
  • Vermijd werkwoorden in paden: /products is goed, /getProducts niet. De HTTP-methode geeft de actie aan.
  • Gebruik nesten voor relaties: gebruik nesten voor gerelateerde resources. Bijvoorbeeld /users/{id}/orders om bestellingen voor een specifieke gebruiker op te halen.
  • Gebruik padparameters voor specifieke resources: /products/{id} om naar één product te verwijzen.

Gegevensmodellen en payloads

De gegevens die u naar uw API verstuurt en ervan ontvangt, worden een payload genoemd. In moderne RESTful API's is JSON (JavaScript Object Notation) de standaardindeling.

Een gegevensmodel definieert de structuur van deze JSON. Een gegevensmodel voor een 'product' kan er bijvoorbeeld zo uitzien:

{
  "id": 123,
  "name": "Example Product",
  "description": "A great item.",
  "price": 19.99
}

Consistentie in uw gegevensmodellen maakt uw API voorspelbaar en eenvoudiger in gebruik.

RESTful API's aan de edge

RESTful API-ontwerp is bijzonder geschikt voor omgevingen met edgecomputing, zoals Cloudflare Workers:

  • Statelessness: edgefuncties hebben vaak een korte levensduur en houden geen status bij, waardoor ze perfect aansluiten bij het stateless-principe van REST.
  • Caching: GET-aanvragen kunnen eenvoudig door CDN's worden gecachet. Dit is een belangrijk voordeel van edgecomputing om vertraging te beperken.
  • Gedistribueerde aard: de duidelijke scheiding van verantwoordelijkheden en uniforme interface van REST maken het eenvoudiger om logica over veel edgelocaties te verdelen.

API-ontwerp controleren

U bouwt een API voor een blog. U moet een lijst met alle blogberichten ophalen. Welk van de volgende ontwerpen voor een API-endpoint en welke HTTP-methode is het meest RESTful?

Samenvatting: RESTful API-ontwerp

Goed gedaan! U hebt de basisbeginselen van het ontwerpen van RESTful API's geleerd:

  • API's gebruiken resources (zelfstandige naamwoorden) en HTTP-methoden (werkwoorden) voor communicatie.
  • Veelgebruikte methoden zijn GET (ophalen), POST (aanmaken), PUT/PATCH (bijwerken) en DELETE (verwijderen).
  • Endpointpaden moeten duidelijk zijn, met meervoudige zelfstandige naamwoorden en zonder werkwoorden.
  • JSON is de standaardindeling voor gegevenspayloads.
  • De principes van REST maken het een uitstekende keuze voor edgecomputing dankzij statelessness en cachebaarheid.

Vervolgens gaan we dieper in op invoervalidatie en beveiliging voor uw edge-API's!

Gratis beginnen

Leer Edge computing met Cloudflare Workers en Deno met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
47

Veelgestelde vragen

Is de les “RESTful API's ontwerpen” gratis?

Ja — de volledige tekst van “RESTful API's ontwerpen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Edge computing met Cloudflare Workers en Deno wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Edge computing met Cloudflare Workers en Deno bevat in totaal 3 lessen.

Wat leer ik in “RESTful API's ontwerpen”?

Plan en structureer RESTful API-eindpunten, methoden en gegevensmodellen die geschikt zijn voor implementatie aan de edge. Je oefent met Edge computing met Cloudflare Workers en Deno door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Edge computing met Cloudflare Workers en Deno te beginnen?

Ervaring vooraf is niet nodig. Edge computing met Cloudflare Workers en Deno op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 3.

Hoe lang duurt de les “RESTful API's ontwerpen”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Edge computing met Cloudflare Workers en Deno?

Ja. Elke les over Edge computing met Cloudflare Workers en Deno bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. RESTful API's ontwerpen
  2. Routing en middleware
  3. Validatie en foutafhandeling
← Terug naar Edge computing met Cloudflare Workers en Deno