API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) · Lektion

Definiera routes och predikat

Lär dig att definiera dynamiska routes med predikat, till exempel Path, Host och Method, för att dirigera förfrågningar till specifika tjänster.

Lektion 3 av 412 steg

Definiera routes och predikat är en gratis lektion i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) på CoddyKit. Detta är lektion 3 av 4. 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 API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.

Routning med API-gateways

Välkommen! I en mikrotjänstarkitektur kommunicerar klienter inte direkt med varje tjänst. I stället interagerar de med en API-gateway.

Den här gatewayen fungerar som en enda ingångspunkt och dirigerar inkommande begäranden till rätt backendtjänst. Denna process kallas routning.

Vad är predikat?

I Spring Cloud Gateway är predikat centrala för routningen. Se dem som ”villkor” eller ”regler”.

  • Ett predikat utvärderas till true eller false.
  • Om ett predikat, eller en uppsättning predikat, för en rutt utvärderas till true, vidarebefordrar gatewayen begäran med den rutten.
  • Om resultatet är false försöker gatewayen med nästa rutt.

Gatewayprojektets grund

Rutter konfigureras vanligtvis i Spring Boot-applikationens fil application.yml eller application.properties. Här är en minimal Spring Boot-applikation som *kan* innehålla vår gatewaykonfiguration. Själva routningslogiken läggs i YAML-filen.

Ni kan köra den här grundläggande applikationen för att se att den fungerar:

package com.coddykit.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class GatewayApplication {

  public static void main(String[] args) {
    SpringApplication.run(GatewayApplication.class, args);
  }

  @GetMapping("/test-gateway")
  public String testGateway() {
    return "Hello from Gateway!";
  }
}

Grundläggande rut struktur

En rutt i Spring Cloud Gateway behöver tre huvuddelar:

  • id: En unik identifierare för rutten.
  • uri: URI:n till backendtjänsten som begärandena ska vidarebefordras till.
  • predicates: En lista med villkor som måste uppfyllas för att rutten ska aktiveras.

Vi definierar huvudsakligen dessa i application.yml.

Path-predikatet

Path-predikatet är ett av de vanligaste. Det matchar sökvägen i begärans URI mot ett angivet mönster.

  • Ni kan använda jokertecken som * (matchar ett sökvägssegment) och ** (matchar flera sökvägssegment).
  • Till exempel matchar /users/* /users/1, men inte /users/admin/1.
  • /users/** matchar både /users/1 och /users/admin/1.

Path-predikatet i praktiken

Så här konfigurerar ni en rutt med Path-predikatet för att skicka alla begäranden som börjar med /api/users till en backendtjänst med namnet user-service:

spring:
  cloud:
    gateway:
      routes:
        - id: user_service_route
          uri: http://localhost:8081 # Your backend user service
          predicates:
            - Path=/api/users/**

Host-predikatet

Host-predikatet matchar begäranden baserat på värdnamnet i begärans huvud.

  • Det är användbart för att dirigera begäranden från olika domäner eller underdomäner till specifika tjänster.
  • Ni kan även använda jokertecken här, till exempel *.example.com för att matcha alla underdomäner till example.com.

Exempel på Host-predikat

Anta att ni vill dirigera alla begäranden från api.mycompany.com till en specifik backendtjänst. Så här gör ni:

spring:
  cloud:
    gateway:
      routes:
        - id: api_domain_route
          uri: http://localhost:8082 # Your backend API service
          predicates:
            - Host=api.mycompany.com

Method-predikatet

Method-predikatet matchar begäranden baserat på deras HTTP-metod, även kallad HTTP-verb.

  • Vanliga metoder är GET, POST, PUT, DELETE och PATCH.
  • Det gör att ni kan dirigera olika typer av åtgärder, till exempel läsning och skapande av data, till olika backendendpunkter eller tjänster.

Exempel på Method-predikat

För att säkerställa att endast POST-begäranden till /products dirigeras till en specifik tjänst, medan andra metoder hanteras på annat håll:

spring:
  cloud:
    gateway:
      routes:
        - id: create_product_route
          uri: http://localhost:8083 # Service for creating products
          predicates:
            - Path=/products
            - Method=POST

Kontroll av predikatens kraft

Ni har lärt er om Path-, Host- och Method-predikat. Nu testar vi er förståelse!

Sammanfattning: Rutter och predikat

Bra jobbat! Ni har lärt er grunderna i att definiera rutter och använda predikat i Spring Cloud Gateway.

  • Rutter dirigerar trafik till backendtjänster.
  • Predikat är villkoren, till exempel Path, Host och Method, som avgör om en rutt matchar.
  • Flera predikat på samma rutt fungerar som ett AND-villkor.

Den här kraftfulla kombinationen möjliggör flexibel och intelligent trafikhantering i era mikrotjänster.

Gratis att börja

Lär dig API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) 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
48

Vanliga frågor

Är lektionen ”Definiera routes och predikat” gratis?

Ja – hela texten till ”Definiera routes och predikat” 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 API-gateway och reverse proxy (Nginx + Spring Cloud Gateway), kan Ni uppgradera till CoddyKit PRO. Kursen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) innehåller totalt 4 lektioner.

Vad lär jag mig i ”Definiera routes och predikat”?

Lär dig att definiera dynamiska routes med predikat, till exempel Path, Host och Method, för att dirigera förfrågningar till specifika tjänster. Ni övar på API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) 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 API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)?

Du behöver inga förkunskaper. Utbildningen i API-gateway och reverse proxy (Nginx + Spring Cloud Gateway) 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 3 av 4.

Hur lång tid tar lektionen ”Definiera routes och predikat”?

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 API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-lektionen?

Ja. Varje API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)-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. Gateway jämfört med traditionella mikrotjänster
  2. Konfigurera ett grundläggande gatewayprojekt
  3. Definiera routes och predikat
  4. Förstå den reaktiva grunden
← Tillbaka till API-gateway och reverse proxy (Nginx + Spring Cloud Gateway)