From 7e0bbfee4979bbdad16086a0243fdad7e5a5bb44 Mon Sep 17 00:00:00 2001 From: sgibb Date: Thu, 21 Dec 2023 16:27:33 -0500 Subject: [PATCH] Adds spring_cloud_gateway_mvc_diagram.png to how-it-works.adoc Fixes gh-3173 --- .../images/spring_cloud_gateway_mvc_diagram.png | Bin 0 -> 30030 bytes .../how-it-works.adoc | 3 +-- docs/modules/ROOT/partials/_configprops.adoc | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 docs/modules/ROOT/assets/images/spring_cloud_gateway_mvc_diagram.png diff --git a/docs/modules/ROOT/assets/images/spring_cloud_gateway_mvc_diagram.png b/docs/modules/ROOT/assets/images/spring_cloud_gateway_mvc_diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..aff9ba45b711c4d1886129ebab620a8f97e94916 GIT binary patch literal 30030 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

b4=-Uw z7CK#?l`awwn>|6C*b{t9d*R4B%0Kz81B$BqBLuv#F20WtZ9AG9-2h(KHeErD5_bs- z)E$X9@q7vhV$Xcg2V92q0d9oRBZSTIKv_Plm4OoH1PGm%KUqzj_pH=%uHL8sfUy9` zZKh(Kw-3PWROfk+O%ced0tSiL*ZD`jmmn+|>uLaaD14cibS>hS>Z~sCa`V%C2{Dox zkoi0RFI00QBIn2J8D~m(A|S|)a_YtJV;u=A*=?pK;{U*_-$dT}lmD1�(ElOz!gk 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 Dhl!va literal 0 HcmV?d00001 diff --git a/docs/modules/ROOT/pages/spring-cloud-gateway-server-mvc/how-it-works.adoc b/docs/modules/ROOT/pages/spring-cloud-gateway-server-mvc/how-it-works.adoc index 874e680752..cc2a41da58 100644 --- a/docs/modules/ROOT/pages/spring-cloud-gateway-server-mvc/how-it-works.adoc +++ b/docs/modules/ROOT/pages/spring-cloud-gateway-server-mvc/how-it-works.adoc @@ -4,8 +4,7 @@ The following diagram provides a high-level overview of how Spring Cloud Gateway works: -// TODO: gateway mvc diagram -//image::spring_cloud_gateway_diagram.png[Spring Cloud Gateway Diagram] +image::spring_cloud_gateway_mvc_diagram.png[Spring Cloud Gateway Server MVC Diagram] In Spring Cloud Gateway Server MVC routes are normal WebMvc.fn `RouterFunction` instances with a special https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/function/HandlerFunction.html[HandlerFunction] to forward the requests over HTTP defined in https://github.com/spring-cloud/spring-cloud-gateway/blob/main/spring-cloud-gateway-server-mvc/src/main/java/org/springframework/cloud/gateway/server/mvc/handler/HandlerFunctions.java[org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions]. Please see the https://docs.spring.io/spring-framework/reference/web/webmvc-functional.html[WebMvc.fn] documentation for regular use of the functional API. diff --git a/docs/modules/ROOT/partials/_configprops.adoc b/docs/modules/ROOT/partials/_configprops.adoc index 7b6c286ac7..d5550b3f82 100644 --- a/docs/modules/ROOT/partials/_configprops.adoc +++ b/docs/modules/ROOT/partials/_configprops.adoc @@ -123,6 +123,7 @@ |spring.cloud.gateway.predicate.cookie.enabled | `+++true+++` | Enables the cookie predicate. |spring.cloud.gateway.predicate.header.enabled | `+++true+++` | Enables the header predicate. |spring.cloud.gateway.predicate.host.enabled | `+++true+++` | Enables the host predicate. +|spring.cloud.gateway.predicate.host.include-port | `+++true+++` | Include the port in matching the host name. |spring.cloud.gateway.predicate.method.enabled | `+++true+++` | Enables the method predicate. |spring.cloud.gateway.predicate.path.enabled | `+++true+++` | Enables the path predicate. |spring.cloud.gateway.predicate.query.enabled | `+++true+++` | Enables the query predicate.