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.
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
trueellerfalse. - 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
falsefö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/1och/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.comför att matcha alla underdomäner tillexample.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.comMethod-predikatet
Method-predikatet matchar begäranden baserat på deras HTTP-metod, även kallad HTTP-verb.
- Vanliga metoder är
GET,POST,PUT,DELETEochPATCH. - 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=POSTKontroll 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,HostochMethod, 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.
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
- Gateway jämfört med traditionella mikrotjänster
- Konfigurera ett grundläggande gatewayprojekt
- Definiera routes och predikat
- Förstå den reaktiva grunden