Routes en predicates definiëren
Leer dynamische routes definiëren met predicates (bijvoorbeeld Path, Host en Method) om aanvragen naar specifieke services te sturen.
Routes en predicates definiëren is een gratis API-gateway en reverse proxy (Nginx + Spring Cloud Gateway)-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject API-gateway en reverse proxy (Nginx + Spring Cloud Gateway). Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat in totaal 4 lessen.
Routeren met API-gateways
Welkom! In een microservicesarchitectuur praten clients niet rechtstreeks met elke service. In plaats daarvan communiceren ze met een API-gateway.
Deze gateway fungeert als één toegangspunt dat binnenkomende aanvragen naar de juiste backendservice stuurt. Dit proces heet routering.
Wat zijn predicaten
In Spring Cloud Gateway zijn predicaten essentieel voor routering. Zie ze als 'voorwaarden' of 'regels'.
- Een predicaat resulteert in
trueoffalse. - Als een predicaat (of een verzameling predicaten) voor een route resulteert in
true, stuurt de gateway de aanvraag via die route door. - Bij
falseprobeert de gateway de volgende route.
Basis van een gatewayproject
Routes worden meestal geconfigureerd in het bestand application.yml of application.properties van je Spring Boot-applicatie. Hier zie je een minimale Spring Boot-applicatie die onze gatewayconfiguratie zou kunnen bevatten. De routeringslogica zelf komt in de YAML.
Je kunt deze eenvoudige app uitvoeren om te zien of deze werkt:
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!";
}
}Basisstructuur van een route
Een route in Spring Cloud Gateway heeft drie belangrijke onderdelen nodig:
id: Een unieke identificatie voor de route.uri: De URI van de backendservice waarnaar aanvragen worden doorgestuurd.predicates: Een lijst met voorwaarden waaraan moet zijn voldaan voordat deze route wordt geactiveerd.
We definiëren deze voornamelijk in application.yml.
Het Path-predicaat
Het Path-predicaat is een van de meest gebruikte predicaten. Het vergelijkt het URI-pad van de aanvraag met een opgegeven patroon.
- Je kunt jokertekens gebruiken, zoals
*(komt overeen met één padsegment) en**(komt overeen met meerdere padsegmenten). /users/*komt bijvoorbeeld overeen met/users/1, maar niet met/users/admin/1./users/**komt overeen met zowel/users/1als/users/admin/1.
Het Path-predicaat in actie
Zo configureer je een route met het Path-predicaat om alle aanvragen die beginnen met /api/users naar een backendservice user-service te sturen:
spring:
cloud:
gateway:
routes:
- id: user_service_route
uri: http://localhost:8081 # Your backend user service
predicates:
- Path=/api/users/**Het Host-predicaat
Het Host-predicaat vergelijkt aanvragen op basis van de hostnaam in de aanvraagheader.
- Dit is handig om aanvragen van verschillende domeinen of subdomeinen naar specifieke services te routeren.
- Je kunt hier ook jokertekens gebruiken, zoals
*.example.com, om elk subdomein vanexample.comte selecteren.
Voorbeeld van het Host-predicaat
Stel dat je alle aanvragen afkomstig van api.mycompany.com naar een specifieke backendservice wilt routeren. Dat doe je als volgt:
spring:
cloud:
gateway:
routes:
- id: api_domain_route
uri: http://localhost:8082 # Your backend API service
predicates:
- Host=api.mycompany.comHet Method-predicaat
Het Method-predicaat vergelijkt aanvragen op basis van hun HTTP-methode (ook wel HTTP-werkwoord genoemd).
- Veelgebruikte methoden zijn
GET,POST,PUT,DELETEenPATCH. - Zo kun je verschillende typen bewerkingen (bijvoorbeeld gegevens lezen of maken) naar afzonderlijke backend-eindpunten of services sturen.
Voorbeeld van het Method-predicaat
Om ervoor te zorgen dat alleen POST-aanvragen naar /products naar een specifieke service worden gerouteerd en andere methoden elders worden afgehandeld:
spring:
cloud:
gateway:
routes:
- id: create_product_route
uri: http://localhost:8083 # Service for creating products
predicates:
- Path=/products
- Method=POSTKennis over predicaten controleren
Je hebt geleerd over de predicaten Path, Host en Method. Laten we nu testen of je het begrijpt!
Samenvatting: routes en predicaten
Goed gedaan! Je hebt de basis geleerd van het definiëren van routes en het gebruiken van predicaten in Spring Cloud Gateway.
- Routes sturen verkeer naar backendservices.
- Predicaten zijn de voorwaarden (zoals
Path,HostenMethod) die bepalen of een route overeenkomt. - Meerdere predicaten op één route fungeren als een AND-voorwaarde.
Dankzij deze krachtige combinatie kun je verkeer in je microservices flexibel en intelligent beheren.
Leer API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Routes en predicates definiëren” gratis?
Ja — de volledige tekst van “Routes en predicates definiëren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat in totaal 4 lessen.
Wat leer ik in “Routes en predicates definiëren”?
Leer dynamische routes definiëren met predicates (bijvoorbeeld Path, Host en Method) om aanvragen naar specifieke services te sturen. Je oefent met API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) te beginnen?
Ervaring vooraf is niet nodig. API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Routes en predicates definiëren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over API-gateway en reverse proxy (Nginx + Spring Cloud Gateway)?
Ja. Elke les over API-gateway en reverse proxy (Nginx + Spring Cloud Gateway) bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Gateway versus traditionele microservices
- Een basisgatewayproject instellen
- Routes en predicates definiëren
- De reactieve basis begrijpen