Definition af routes og predicates
Lær at definere dynamiske routes ved hjælp af predicates (f.eks. Path, Host og Method) for at dirigere forespørgsler til bestemte tjenester.
Definition af routes og predicates er en gratis API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektion på CoddyKit. Dette er lektion 3 af 4. 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 API-gateway og reverse proxy (Nginx + Spring Cloud Gateway), og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset indeholder 4 lektioner i alt.
Routing med API-gateways
Velkommen! I en mikrotjenestearkitektur taler klienter ikke direkte med alle tjenester. I stedet interagerer de med en API Gateway.
Denne gateway fungerer som et enkelt indgangspunkt, der videresender indgående anmodninger til den korrekte backendtjeneste. Denne proces kaldes routing.
Hvad er prædikater
I Spring Cloud Gateway er prædikater afgørende for routing. Tænk på dem som 'betingelser' eller 'regler'.
- Et prædikat evalueres til
trueellerfalse. - Hvis et prædikat (eller et sæt prædikater) for en rute evalueres til
true, videresender gatewayen anmodningen ved hjælp af denne rute. - Hvis resultatet er
false, forsøger gatewayen med den næste rute.
Grundlaget for gatewayprojektet
Ruter konfigureres typisk i din Spring Boot-applikations fil application.yml eller application.properties. Her er en minimal Spring Boot-applikation, som *kan* være vært for vores gatewaykonfiguration. Selve routinglogikken placeres i YAML-filen.
Du kan køre denne grundlæggende applikation for at se, at den fungerer:
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æggende rutestruktur
En rute i Spring Cloud Gateway skal indeholde tre hoveddele:
id: En entydig identifikator for ruten.uri: URI'en til den backendtjeneste, som anmodningerne videresendes til.predicates: En liste over betingelser, der skal være opfyldt, for at ruten aktiveres.
Vi definerer primært disse i application.yml.
Stiprædikatet
Path-prædikatet er et af de mest almindelige. Det sammenholder anmodningens URI-sti med et angivet mønster.
- Du kan bruge jokertegn som
*(matcher ét stisegment) og**(matcher flere stisegmenter). - For eksempel matcher
/users/*/users/1, men ikke/users/admin/1. /users/**matcher både/users/1og/users/admin/1.
Stiprædikatet i praksis
Sådan konfigurerer du en rute ved hjælp af Path-prædikatet, så alle anmodninger, der begynder med /api/users, sendes til en backend med user-service:
spring:
cloud:
gateway:
routes:
- id: user_service_route
uri: http://localhost:8081 # Your backend user service
predicates:
- Path=/api/users/**Værtsprædikatet
Host-prædikatet matcher anmodninger ud fra værtsnavnet i anmodningshovedet.
- Det er nyttigt til at route anmodninger fra forskellige domæner eller underdomæner til bestemte tjenester.
- Du kan også bruge jokertegn her, f.eks.
*.example.com, til at matche alle underdomæner underexample.com.
Eksempel på værtsprædikat
Lad os sige, at du vil route alle anmodninger fra api.mycompany.com til en bestemt backendtjeneste. Sådan gør du:
spring:
cloud:
gateway:
routes:
- id: api_domain_route
uri: http://localhost:8082 # Your backend API service
predicates:
- Host=api.mycompany.comMetodeprædikatet
Method-prædikatet matcher anmodninger ud fra deres HTTP-metode (også kaldet HTTP-verbum).
- Almindelige metoder omfatter
GET,POST,PUT,DELETEogPATCH. - Det gør det muligt at sende forskellige typer handlinger (f.eks. læsning eller oprettelse af data) til forskellige backendendepunkter eller tjenester.
Eksempel på metodeprædikat
Hvis du vil sikre, at kun POST-anmodninger til /products routes til en bestemt tjeneste, mens andre metoder håndteres et andet sted:
spring:
cloud:
gateway:
routes:
- id: create_product_route
uri: http://localhost:8083 # Service for creating products
predicates:
- Path=/products
- Method=POSTKontrol af prædikaternes styrke
Du har lært om prædikaterne Path, Host og Method. Nu skal du teste din forståelse!
Opsummering: Ruter og prædikater
Godt gået! Du har lært det grundlæggende i at definere ruter og bruge prædikater i Spring Cloud Gateway.
- Ruter videresender trafik til backendtjenester.
- Prædikater er betingelserne (som
Path,HostogMethod>), der afgør, om en rute matcher. - Flere prædikater på én rute fungerer som en AND-betingelse.
Denne effektive kombination giver mulighed for fleksibel og intelligent trafikstyring i dine mikrotjenester.
Lær API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) 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
- 48
Ofte stillede spørgsmål
Er lektionen “Definition af routes og predicates” gratis?
Ja — hele teksten til “Definition af routes og predicates” 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 API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset, skal du opgradere til CoddyKit PRO. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Definition af routes og predicates”?
Lær at definere dynamiske routes ved hjælp af predicates (f.eks. Path, Host og Method) for at dirigere forespørgsler til bestemte tjenester. Du øver dig i API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) 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å API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)?
Der kræves ingen tidligere erfaring. API-gateway og reverse proxy (Nginx + Spring Cloud Gateway) 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 3 af 4.
Hvor lang tid tager lektionen “Definition af routes og predicates”?
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 API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-lektion?
Ja. Alle API-gateway og reverse proxy (Nginx + Spring Cloud Gateway)-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
- Gateway kontra traditionelle mikroservices
- Opsætning af et grundlæggende gatewayprojekt
- Definition af routes og predicates
- Forstå det reaktive fundament