Edge computing med Cloudflare Workers och Deno · Lektion

Utforma RESTful API:er

Planera och strukturera RESTful API-slutpunkter, metoder och datamodeller som lämpar sig för distribution vid edge

Lektion 1 av 311 steg

Utforma RESTful API:er är en gratis lektion i Edge computing med Cloudflare Workers och Deno på CoddyKit. Detta är lektion 1 av 3. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Edge computing med Cloudflare Workers och Deno, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Edge computing med Cloudflare Workers och Deno innehåller totalt 3 lektioner.

Introduktion till RESTful API:er

Välkomna! I den här lektionen får ni lära er om RESTful API:er, ett grundläggande sätt att utforma webbtjänster. REST står för Representational State Transfer.

Tänk på ett API som en meny på en restaurang. Ni skickar en begäran (beställer mat), och köket (servern) skickar tillbaka ett svar (er måltid). REST definierar en uppsättning regler för hur denna kommunikation ska fungera över internet.

Centrala REST-principer

RESTful API:er bygger på några centrala idéer:

  • Resurser: Allt är en ”resurs” (till exempel en användare eller en produkt).
  • Unika URI:er: Varje resurs har en unik adress (en URL eller URI).
  • Standardmetoder: HTTP-metoder (GET, POST, PUT, DELETE) används för att utföra åtgärder på resurser.
  • Tillståndslöshet: Varje begäran från en klient till en server måste innehålla all information som behövs för att förstå begäran. Servern lagrar inte klientens ”sessionstillstånd” mellan begäranden.

Resurser är substantiv

När ni utformar ert API bör ni tänka på de ”saker” som applikationen hanterar. Dessa ”saker” är era resurser.

Om ni till exempel bygger ett API för e-handel kan era resurser vara:

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

Observera att de alla är substantiv i plural. Detta är en vanlig och rekommenderad praxis vid RESTful-design.

HTTP-metoder: verben

HTTP-metoder talar om för servern vilken typ av åtgärd ni vill utföra på en resurs. De fungerar som verb i en mening:

  • GET: Hämta data (till exempel hämta en produkt eller en lista över användare).
  • POST: Skapa nya data (till exempel skapa en ny användare eller lägga till en ny produkt).
  • PUT: Uppdatera befintliga data (ersätter en hel resurs).
  • PATCH: Uppdatera befintliga data delvis (uppdaterar specifika fält i en resurs).
  • DELETE: Ta bort data (till exempel ta bort en produkt).

GET: Exempel på att hämta data

Metoden GET används för att begära data från en angiven resurs. Den bör aldrig ha sidoeffekter (det vill säga den bör inte ändra data på servern).

Prova att köra den här enkla Deno-servern. Öppna sedan http://localhost:8000/products i webbläsaren för att se resultatet.

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: Exempel på att skapa data

Metoden POST används för att skicka en entitet till den angivna resursen, vilket ofta leder till en ändring av tillståndet eller att en ny resurs skapas.

Det här exemplet visar hur en Deno-server kan hantera en POST-begäran för att skapa en ny produkt. Vanligtvis skickar man JSON-data i begärans body.

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

Utforma endpoint-sökvägar

Tydliga och konsekventa endpoint-sökvägar (URI:er) är avgörande för ett bra API. Här följer några rekommendationer:

  • Använd substantiv i plural: /users, inte /user.
  • Undvik verb i sökvägar: /products är bra, medan /getProducts inte är det. HTTP-metoden anger åtgärden.
  • Använd nästling för relationer: För relaterade resurser använder du nästlade sökvägar. Till exempel /users/{id}/orders för att hämta beställningar för en specifik användare.
  • Använd sökvägsparametrar för specifika resurser: /products/{id} för att referera till en enskild produkt.

Datamodeller och payloads

Data som du skickar till och tar emot från ditt API kallas en payload. I moderna RESTful API:er är JSON (JavaScript Object Notation) standardformatet.

En datamodell definierar strukturen för denna JSON. En datamodell för exempelvis en produkt kan se ut så här:

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

Konsekventa datamodeller gör ditt API förutsägbart och enklare att använda.

RESTful API:er på kanten

RESTful API-design passar särskilt bra för miljöer med edge computing, till exempel Cloudflare Workers:

  • Tillståndslöshet: Edge-funktioner har ofta kort livslängd och bevarar inte tillstånd, vilket passar perfekt med REST:s tillståndslösa princip.
  • Cachelagring: GET-begäranden kan enkelt cachelagras av CDN:er, vilket är en central fördel med edge computing eftersom det minskar fördröjningen.
  • Distribuerad natur: REST:s tydliga åtskillnad mellan ansvarsområden och enhetliga gränssnitt gör det enklare att distribuera logik till många edge-platser.

Kontroll av API-design

Du bygger ett API för en blogg. Du behöver hämta en lista över alla blogginlägg. Vilken av följande designer för API-endpoint och HTTP-metoder är mest RESTful?

Sammanfattning: RESTful API-design

Bra jobbat! Du har lärt dig grunderna i att utforma RESTful API:er:

  • API:er använder resurser (substantiv) och HTTP-metoder (verb) för kommunikation.
  • Vanliga metoder är GET (hämta), POST (skapa), PUT/PATCH (uppdatera) och DELETE (ta bort).
  • Endpoint-sökvägar bör vara tydliga, använda substantiv i plural och undvika verb.
  • JSON är standardformatet för datapayloads.
  • REST:s principer gör det till ett utmärkt val för edge computing tack vare tillståndslöshet och cachelagring.

Härnäst går vi igenom indatavalidering och säkerhet för dina edge-API:er!

Gratis att börja

Lär dig Edge computing med Cloudflare Workers och Deno med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
47

Vanliga frågor

Är lektionen ”Utforma RESTful API:er” gratis?

Ja – hela texten till ”Utforma RESTful API:er” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Edge computing med Cloudflare Workers och Deno, kan Ni uppgradera till CoddyKit PRO. Kursen i Edge computing med Cloudflare Workers och Deno innehåller totalt 3 lektioner.

Vad lär jag mig i ”Utforma RESTful API:er”?

Planera och strukturera RESTful API-slutpunkter, metoder och datamodeller som lämpar sig för distribution vid edge Ni övar på Edge computing med Cloudflare Workers och Deno med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Edge computing med Cloudflare Workers och Deno?

Du behöver inga förkunskaper. Utbildningen i Edge computing med Cloudflare Workers och Deno på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 3.

Hur lång tid tar lektionen ”Utforma RESTful API:er”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Edge computing med Cloudflare Workers och Deno-lektionen?

Ja. Varje Edge computing med Cloudflare Workers och Deno-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Utforma RESTful API:er
  2. Routing och middleware
  3. Validering och felhantering
← Tillbaka till Edge computing med Cloudflare Workers och Deno