Edge computing med Cloudflare Workers og Deno · Lektion

Design af RESTful API'er

Planlæg og strukturér RESTful API-endpoints, metoder og datamodeller, der egner sig til deployment ved kanten.

Lektion 1 af 311 trin

Design af RESTful API'er er en gratis Edge computing med Cloudflare Workers og Deno-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Edge computing med Cloudflare Workers og Deno, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Edge computing med Cloudflare Workers og Deno-kurset indeholder 3 lektioner i alt.

Introduktion til RESTful API'er

Velkommen! I denne lektion lærer du om RESTful API'er, som er en grundlæggende måde at designe webtjenester på. REST står for Representational State Transfer.

Tænk på et API som et menukort på en restaurant. Du sender en forespørgsel (bestiller mad), og køkkenet (serveren) sender et svar tilbage (dit måltid). REST definerer et sæt regler for, hvordan denne kommunikation skal foregå over internettet.

Centrale REST-principper

RESTful API'er bygger på nogle få centrale idéer:

  • Ressourcer: Alt er en »ressource« (f.eks. en bruger eller et produkt).
  • Unikke URI'er: Hver ressource har en unik adresse (en URL eller URI).
  • Standardmetoder: HTTP-metoder (GET, POST, PUT, DELETE) bruges til at udføre handlinger på ressourcer.
  • Tilstandsløshed: Hver forespørgsel fra en klient til en server skal indeholde alle de oplysninger, der er nødvendige for at forstå forespørgslen. Serveren gemmer ikke klientens »sessionstilstand« mellem forespørgsler.

Ressourcer er navneord

Når du designer dit API, skal du tænke på de »ting«, som din applikation håndterer. Disse »ting« er dine ressourcer.

Hvis du f.eks. bygger et e-handels-API, kan dine ressourcer omfatte:

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

Bemærk, at de alle er navneord i flertal. Det er en almindelig og anbefalet praksis i RESTful-design.

HTTP-metoder: Udsagnsordene

HTTP-metoder fortæller serveren, hvilken type handling du vil udføre på en ressource. De fungerer som udsagnsord i en sætning:

  • GET: Hent data (f.eks. hent et produkt eller en liste over brugere).
  • POST: Opret nye data (f.eks. opret en ny bruger eller tilføj et nyt produkt).
  • PUT: Opdater eksisterende data (erstatter en hel ressource).
  • PATCH: Opdater eksisterende data delvist (opdaterer bestemte felter i en ressource).
  • DELETE: Fjern data (f.eks. slet et produkt).

GET: Eksempel på hentning af data

GET-metoden bruges til at anmode om data fra en angivet ressource. Den bør aldrig have sideeffekter (dvs. den bør ikke ændre data på serveren).

Prøv at køre denne simple Deno-server. Åbn derefter http://localhost:8000/products i din browser for at se outputtet.

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: Eksempel på oprettelse af data

POST-metoden bruges til at sende en entitet til den angivne ressource, hvilket ofte medfører en ændring af tilstanden eller oprettelsen af en ny ressource.

Dette eksempel viser, hvordan en Deno-server kan håndtere en POST-anmodning for at oprette et nyt produkt. Du vil typisk sende JSON-data i anmodningens brødtekst.

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");

Design af endpoint-stier

Klare og ensartede endpoint-stier (URI'er) er afgørende for en god API. Her er nogle anbefalinger:

  • Brug navneord i flertal: /users, ikke /user.
  • Undgå udsagnsord i stier: /products er godt, mens /getProducts ikke er det. HTTP-metoden angiver handlingen.
  • Indlejring for relationer: Brug indlejring til relaterede ressourcer. F.eks. /users/{id}/orders for at hente ordrer for en bestemt bruger.
  • Brug sti-parametre til bestemte ressourcer: /products/{id} for at referere til et enkelt produkt.

Datamodeller og nyttedata

De data, du sender til og modtager fra din API, kaldes nyttedata. I moderne RESTful API'er er JSON (JavaScript Object Notation) standardformatet.

En datamodel definerer strukturen for denne JSON. En datamodel for et "produkt" kunne f.eks. se sådan ud:

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

Ensartede datamodeller gør din API forudsigelig og lettere at bruge.

RESTful API'er på kanten

RESTful API-design egner sig særligt godt til miljøer med edge computing, f.eks. Cloudflare Workers:

  • Tilstandsløshed: Edge-funktioner har ofte kort levetid og bevarer ikke en tilstand, hvilket passer perfekt til REST's tilstandsløse princip.
  • Cachelagring: GET-anmodninger kan nemt cachelagres af CDN'er, hvilket er en vigtig fordel ved edge computing, fordi det reducerer latenstiden.
  • Distribueret arkitektur: REST's klare adskillelse af ansvar og ensartede grænseflade gør det lettere at distribuere logik på tværs af mange edge-placeringer.

Kontrol af API-design

Du er ved at bygge en API til en blog. Du skal hente en liste over alle blogindlæg. Hvilket af følgende API-endpoint-designs og HTTP-metoder er mest RESTful?

Opsamling: RESTful API-design

Godt gået! Du har lært det grundlæggende i design af RESTful API'er:

  • API'er bruger ressourcer (navneord) og HTTP-metoder (udsagnsord) til kommunikation.
  • Almindelige metoder er GET (hent), POST (opret), PUT/PATCH (opdatér) og DELETE (fjern).
  • Endpoint-stier bør være klare, bruge navneord i flertal og undgå udsagnsord.
  • JSON er standardformatet til nyttedata.
  • REST's principper gør det til et fremragende valg til edge computing på grund af tilstandsløshed og mulighed for cachelagring.

Nu dykker vi ned i inputvalidering og sikkerhed for dine edge-API'er!

Gratis at komme i gang

Lær Edge computing med Cloudflare Workers og Deno med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
47

Ofte stillede spørgsmål

Er lektionen “Design af RESTful API'er” gratis?

Ja — hele teksten til “Design af RESTful API'er” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Edge computing med Cloudflare Workers og Deno-kurset, skal du opgradere til CoddyKit PRO. Edge computing med Cloudflare Workers og Deno-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Design af RESTful API'er”?

Planlæg og strukturér RESTful API-endpoints, metoder og datamodeller, der egner sig til deployment ved kanten. Du øver dig i Edge computing med Cloudflare Workers og Deno med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Edge computing med Cloudflare Workers og Deno?

Der kræves ingen tidligere erfaring. Edge computing med Cloudflare Workers og Deno på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 3.

Hvor lang tid tager lektionen “Design af RESTful API'er”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Edge computing med Cloudflare Workers og Deno-lektion?

Ja. Alle Edge computing med Cloudflare Workers og Deno-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Design af RESTful API'er
  2. Routing og middleware
  3. Validering og fejlhåndtering
← Tilbage til Edge computing med Cloudflare Workers og Deno