From cf98feaa5573eb32a57825985543561f30996089 Mon Sep 17 00:00:00 2001 From: "Badr.NassLahsen" Date: Fri, 27 Sep 2024 23:03:38 +0200 Subject: [PATCH] docs update --- docs/faq.html | 40 +++++++++++++-- docs/favicon.ico | Bin 64646 -> 182726 bytes docs/index.html | 46 +++++++++++++++--- docs/migrating-from-springfox.html | 4 +- docs/properties.html | 8 +-- docs/ui-properties.html | 6 +-- docs/v1/faq.html | 6 +-- docs/v1/index.html | 10 ++-- docs/v1/migrating-from-springfox.html | 4 +- docs/v1/properties.html | 4 +- docs/v1/ui-properties.html | 6 +-- .../asciidoc/migrating-from-springfox.adoc | 2 +- src/docs/asciidoc/ui-properties.adoc | 2 +- .../asciidoc/v1/migrating-from-springfox.adoc | 2 +- src/docs/asciidoc/v1/ui-properties.adoc | 2 +- 15 files changed, 99 insertions(+), 43 deletions(-) diff --git a/docs/faq.html b/docs/faq.html index a577278..b7cb689 100644 --- a/docs/faq.html +++ b/docs/faq.html @@ -298,15 +298,13 @@

-
---
-@Bean
+
@Bean
 @Primary
 fun swaggerUiConfig(config: SwaggerUiConfigProperties): SwaggerUiConfigProperties {
     config.showCommonExtensions = true
     config.queryConfigEnabled = true
     return config
 }
----
 
@@ -579,7 +577,7 @@

+
+
import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Encoding;
+import io.swagger.v3.oas.annotations.parameters.RequestBody;
+
+@PostMapping(value = "/upload", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
+public ResponseEntity<?> upload(@Parameter(description = "file") final MultipartFile file) {
+    return null;
+}
+
+@PostMapping(value = "/uploadFileWithQuery", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
+public ResponseEntity<?> uploadFileWithQuery(@Parameter(description = "file") @RequestPart("file") final MultipartFile file,
+        @Parameter(description = "An extra query parameter") @RequestParam String name) {
+    return null;
+}
+
+@PostMapping(value = "/uploadFileWithJson", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}, produces = {
+        MediaType.APPLICATION_JSON_VALUE})
+public ResponseEntity<?> uploadFileWithJson(
+        @RequestBody(content = @Content(encoding = @Encoding(name = "jsonRequest", contentType = MediaType.APPLICATION_JSON_VALUE)))
+        @Parameter(description = "An extra JSON payload sent with file") @RequestPart("jsonRequest") final JsonRequest jsonRequest,
+        @RequestPart("file") final MultipartFile file) {
+    return null;
+}
+
+
+

Can I use @Parameter inside @Operation annotation?

@@ -2066,7 +2096,7 @@

diff --git a/docs/favicon.ico b/docs/favicon.ico index 0dfbcd7b523a26d4222c067be61c0c835b7314f6..45468e6bdc0bf260cfe760cb74d127dccba082bc 100644 GIT binary patch literal 182726 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 z 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

@DgZG)j$0 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 literal 64646 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

)9Y{xw^Vg#R?UzVgzweggm_VQW@SqNB9W% z8vI_Oc`iRI5#m?FmsYz6bXIDg(H84HaPoqW8e?hcAsBlt2K|SEc<+H}tZx+XnXY2X zt+;ode)i}6<~fduWh_#`3UH%`4`2k?>@dpNBx|9i@EOvRwP4qRefXlUujzrd{dccv z4^hO(-to%;)8Den57`6fS?*bpRh~UNv}49vH`6y*PtF40Xv@B^w?ac`JnwskHMcKw zER)7T9(03afjVyGnAWMR^-B#O$$X>=+lc#9a9F77PRLrTSFff@I&0a1krvHckdKd# zsq1$i{#nUdeW#Bn_%>!WGVqbr-iUqe!90N@^9Jw;OMD=$-LS8eAIT)%y8zh09%$G< z^S6W$T5w`(s@O=DudMSAsZaRGt*{VN;}LH_FW!T~2=B*)J^h3Zo;XUE0-vm%ll06u zLkt@XonSc&@z+I`$GF9qZLhxTVQRn3{E(?QHUo6>F%iGgg;0N+;<=^8KLjJdVr%A8 zTAwcX5rL0b#tQ;Qnm21s-WopgEczMmSoYq7Uz7I0p3iz~j|3mBTemjLk2M|xt+0z+*Cb&Ly=#c4N%O8m4hdl6$m-V@_CypilEboHc9@W4H_Kp?G417$UJXt*lY%IVX=7zDp5p`>y zP1=wZ&kMd^&G@KJ9YzdPI`c@z2IBe1fjvAn#`)2X%ZF8*YQ*xih6_oz2Oq+>S`O}| z_WYDS!gz3~?QAbTfDx=OflhSwW}vCBHg4R= zaY?J{Vx)1S#&qo1F*OGE?A=R?7A>Ob)27qBdGl0^o1hyRTXPLv0An9}BU_UtkdFP< zkWU+5Sny$~ZyY^(ROPM0u~vn|uQ06`ZnokB<-)feZEDb6@RjXe~e`M9OSHcaow-j`7U;{eG|M@N?@1!uAew6ngOvPShiIw!=L-`$jATA#3=MaSOc!1X)Pdjzbs6-ncjoFajTX_zC+5Kj9-=SXS1{F50r!NitriO+#nMP*^7@!lO`#BNXi5DckS9G z#l4W{+YjUD%EM^d;Cqnw!*OEXVP9O_bn_4P3xhoiYp|SoO|bYgN+)7XHO3bF`AmuDQe!BSxq(qLp!^9oq93UwonRLH8CCd_XsGb8}Pip)q$OSeQNg$r{Xs z3m2;U;gcD~^HPX=(Sg^(U_3#_6B2wNyaw$UE#h z4PZYj#O=hGhwq^^o}o>*7a#CZ$J|R%-aoqIXlFWb-2A&MeTg|R=oOa!jCz*NI0tHn5 zk|j$L);tLbJ}}P#Sxj3daA+w9;XcF`MLu8$-)#KOpFh7@{ZhUqK9CMOwA3TE27B=# z<>L%}3*QLfRvULfo99LReKhz2^*^vk#s5T{+qAG^3qIgO4BvDd@XLkY;*UrEOGzBl z$r{0)Wli5O!^7h^DcUr|3Z6cFy0xNHq{DYu;-G7NTeKN52aWNAd|DY~)~s3Tn+g2_ z@!DWJ!nb(p)Tz2-6SiaQ`2c${bac!cfRAVib3XVE@7}#z@fq+I%s*n?GWN66Bg}Q9 zePzp*C9xwzU(zEze1M-pS3ntJpUVh7P%qYCqr7jw{Z_9TFKilC()vaOlB>5Tb@rS} z6;}6BzU{z5F_(_Yr#(5YbQdbdGTDUR)++zqqO4C~{U7G(;lB$$f%UMTv7bHcxwG8e z=oHW8+u}!saRVEbcHGm$k)~$R$<$m~k2=B$dOd^riE5uW5pfC?ohtZBAM5U14tk ziMdv!ND-PgZ5qKoiF4t?h1J-BjY)4FPOrS@ktT8?#yMm*Yb5yS-n~0Pr>|MFrpeX? ze|;f)@G*hoav=68cpdZ**g9YvLtC_QP^IkbdQM{9FZ_NCuNk~e=fnN!G{;a6j0vTf zxH$6hyQplnAw1R+c? z{J8PyZWR1U;70}dA7@;@D1>?HwC1WMkDRSNTUvj&ybt~?@Y#iZ0CBR7{dz2W=;>X< zMvAyv>9JoS#v^#VK}HW`*B*ckA2w6WXJ~mtTED?NdVbN9;#l4@$moIW+yj^gcVwR{ zTjebHY1OV(+hm{2&V6G%o6!U40odZPRtkK?s;tFxg77V=Tc<9s*Z9fkIHL!0R1biU z3>!L(YVh0y5. Springdoc-openapi Properties

-

springdoc-openapi relies on standard spring configuration properties (yml or properties) using the standard files locations.

+

springdoc-openapi relies on standard spring configuration properties (yml or properties) using the standard files locations.

5.1. springdoc-openapi core properties

@@ -1697,8 +1697,8 @@

<

springdoc.swagger-ui.validatorUrl

-

validator.swagger.io/validator

-

By default, Swagger UI attempts to validate specs against swagger.io’s online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators Validator Badge. Setting it to either none, 127.0.0.1 or localhost will disable validation.

+ +

By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator.

springdoc.swagger-ui.tryItOutEnabled

@@ -2335,7 +2335,7 @@

-
---
-@Bean
+
@Bean
 @Primary
 fun swaggerUiConfig(config: SwaggerUiConfigProperties): SwaggerUiConfigProperties {
     config.showCommonExtensions = true
     config.queryConfigEnabled = true
     return config
 }
----
 
@@ -3241,7 +3239,7 @@

+
+
import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Encoding;
+import io.swagger.v3.oas.annotations.parameters.RequestBody;
+
+@PostMapping(value = "/upload", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
+public ResponseEntity<?> upload(@Parameter(description = "file") final MultipartFile file) {
+    return null;
+}
+
+@PostMapping(value = "/uploadFileWithQuery", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE})
+public ResponseEntity<?> uploadFileWithQuery(@Parameter(description = "file") @RequestPart("file") final MultipartFile file,
+        @Parameter(description = "An extra query parameter") @RequestParam String name) {
+    return null;
+}
+
+@PostMapping(value = "/uploadFileWithJson", consumes = {MediaType.MULTIPART_FORM_DATA_VALUE}, produces = {
+        MediaType.APPLICATION_JSON_VALUE})
+public ResponseEntity<?> uploadFileWithJson(
+        @RequestBody(content = @Content(encoding = @Encoding(name = "jsonRequest", contentType = MediaType.APPLICATION_JSON_VALUE)))
+        @Parameter(description = "An extra JSON payload sent with file") @RequestPart("jsonRequest") final JsonRequest jsonRequest,
+        @RequestPart("file") final MultipartFile file) {
+    return null;
+}
+
+
+

13.54. Can I use @Parameter inside @Operation annotation?

diff --git a/docs/migrating-from-springfox.html b/docs/migrating-from-springfox.html index f954f48..fb0f539 100644 --- a/docs/migrating-from-springfox.html +++ b/docs/migrating-from-springfox.html @@ -71,7 +71,7 @@

diff --git a/docs/properties.html b/docs/properties.html index b6888e2..6aa7245 100644 --- a/docs/properties.html +++ b/docs/properties.html @@ -33,7 +33,7 @@

Springdoc-openapi Properties

-

springdoc-openapi relies on standard spring configuration properties (yml or properties) using the standard files locations.

+

springdoc-openapi relies on standard spring configuration properties (yml or properties) using the standard files locations.

springdoc-openapi core properties

@@ -396,8 +396,8 @@

springdoc.swagger-ui.validatorUrl

-

https://validator.swagger.io/validator

-

By default, Swagger UI attempts to validate specs against swagger.io’s online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators Validator Badge. Setting it to either none, 127.0.0.1 or localhost will disable validation.

+ +

By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator.

springdoc.swagger-ui.tryItOutEnabled

@@ -614,7 +614,7 @@

diff --git a/docs/ui-properties.html b/docs/ui-properties.html index 2cf9876..23b8f76 100644 --- a/docs/ui-properties.html +++ b/docs/ui-properties.html @@ -65,8 +65,8 @@

springdoc.swagger-ui.validatorUrl

-

https://validator.swagger.io/validator

-

By default, Swagger UI attempts to validate specs against swagger.io’s online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators Validator Badge. Setting it to either none, 127.0.0.1 or localhost will disable validation.

+ +

By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator.

springdoc.swagger-ui.tryItOutEnabled

@@ -280,7 +280,7 @@
diff --git a/docs/v1/faq.html b/docs/v1/faq.html index 5fc3063..0dab8bf 100644 --- a/docs/v1/faq.html +++ b/docs/v1/faq.html @@ -298,15 +298,13 @@

-
---
-@Bean
+
@Bean
 @Primary
 fun swaggerUiConfig(config: SwaggerUiConfigProperties): SwaggerUiConfigProperties {
     config.showCommonExtensions = true
     config.queryConfigEnabled = true
     return config
 }
----
 
@@ -2016,7 +2014,7 @@

diff --git a/docs/v1/index.html b/docs/v1/index.html index 2061e21..ab1bb7f 100644 --- a/docs/v1/index.html +++ b/docs/v1/index.html @@ -1586,8 +1586,8 @@

<

springdoc.swagger-ui.validatorUrl

-

validator.swagger.io/validator

-

By default, Swagger UI attempts to validate specs against swagger.io’s online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators Validator Badge. Setting it to either none, 127.0.0.1 or localhost will disable validation.

+ +

By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator.

springdoc.swagger-ui.tryItOutEnabled

@@ -2028,7 +2028,7 @@

-
---
-@Bean
+
@Bean
 @Primary
 fun swaggerUiConfig(config: SwaggerUiConfigProperties): SwaggerUiConfigProperties {
     config.showCommonExtensions = true
     config.queryConfigEnabled = true
     return config
 }
----
 
diff --git a/docs/v1/migrating-from-springfox.html b/docs/v1/migrating-from-springfox.html index 7623a51..716ba47 100644 --- a/docs/v1/migrating-from-springfox.html +++ b/docs/v1/migrating-from-springfox.html @@ -71,7 +71,7 @@

diff --git a/docs/v1/properties.html b/docs/v1/properties.html index cae141a..951ded7 100644 --- a/docs/v1/properties.html +++ b/docs/v1/properties.html @@ -396,8 +396,8 @@

springdoc.swagger-ui.validatorUrl

-

https://validator.swagger.io/validator

-

By default, Swagger UI attempts to validate specs against swagger.io’s online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators Validator Badge. Setting it to either none, 127.0.0.1 or localhost will disable validation.

+ +

By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator.

springdoc.swagger-ui.tryItOutEnabled

diff --git a/docs/v1/ui-properties.html b/docs/v1/ui-properties.html index 9a927f6..314301c 100644 --- a/docs/v1/ui-properties.html +++ b/docs/v1/ui-properties.html @@ -65,8 +65,8 @@

springdoc.swagger-ui.validatorUrl

-

https://validator.swagger.io/validator

-

By default, Swagger UI attempts to validate specs against swagger.io’s online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators Validator Badge. Setting it to either none, 127.0.0.1 or localhost will disable validation.

+ +

By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator.

springdoc.swagger-ui.tryItOutEnabled

@@ -280,7 +280,7 @@ diff --git a/src/docs/asciidoc/migrating-from-springfox.adoc b/src/docs/asciidoc/migrating-from-springfox.adoc index 9346af6..e097dad 100644 --- a/src/docs/asciidoc/migrating-from-springfox.adoc +++ b/src/docs/asciidoc/migrating-from-springfox.adoc @@ -20,7 +20,7 @@ Package for swagger 3 annotations is `io.swagger.v3.oas.annotations`. - `@ApiImplicitParam` -> `@Parameter` - `@ApiImplicitParams` -> `@Parameters` - `@ApiModel` -> `@Schema` -- `@ApiModelProperty(hidden = true)` -> `@Schema(accessMode = READ_ONLY)` +- `@ApiModelProperty(allowEmptyValue = true)` -> `@Schema(nullable = true)` - `@ApiModelProperty` -> `@Schema` - `@ApiOperation(value = "foo", notes = "bar")` -> `@Operation(summary = "foo", description = "bar")` - `@ApiParam` -> `@Parameter` diff --git a/src/docs/asciidoc/ui-properties.adoc b/src/docs/asciidoc/ui-properties.adoc index c466f9b..5144b77 100644 --- a/src/docs/asciidoc/ui-properties.adoc +++ b/src/docs/asciidoc/ui-properties.adoc @@ -7,7 +7,7 @@ |springdoc.swagger-ui.enabled | `true` | `Boolean`. To disable the swagger-ui endpoint (/swagger-ui.html by default). |springdoc.swagger-ui.configUrl | `/v3/api-docs/swagger-config` | `String`. URL to fetch external configuration document from. |springdoc.swagger-ui.layout | `BaseLayout` | `String`. The name of a component available via the plugin system to use as the top-level layout for Swagger UI. -|springdoc.swagger-ui.validatorUrl | `https://validator.swagger.io/validator` | By default, Swagger UI attempts to validate specs against swagger.io's online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators link:https://github.com/swagger-api/validator-badge[Validator Badge, window="_blank"]. Setting it to either `none`, `127.0.0.1` or `localhost` will disable validation. +|springdoc.swagger-ui.validatorUrl | | By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator. |springdoc.swagger-ui.tryItOutEnabled | `false` |`Boolean`. Controls whether the "Try it out" section should be enabled by default. |springdoc.swagger-ui.filter | `false` | `Boolean OR String`. If set, enables filtering. The top bar will show an edit box that you can use to filter the tagged operations that are shown. Can be Boolean to enable or disable, or a string, in which case filtering will be enabled using that string as the filter expression. Filtering is case sensitive matching the filter expression anywhere inside the tag. |springdoc.swagger-ui.operationsSorter | | `Function=(a => a)`. Apply a sort to the operation list of each API. It can be 'alpha' (sort by paths alphanumerically), 'method' (sort by HTTP method) or a function (see Array.prototype.sort() to know how sort function works). Default is the order returned by the server unchanged. diff --git a/src/docs/asciidoc/v1/migrating-from-springfox.adoc b/src/docs/asciidoc/v1/migrating-from-springfox.adoc index 6e039b3..78a1f03 100644 --- a/src/docs/asciidoc/v1/migrating-from-springfox.adoc +++ b/src/docs/asciidoc/v1/migrating-from-springfox.adoc @@ -20,7 +20,7 @@ Package for swagger 3 annotations is `io.swagger.v3.oas.annotations`. - `@ApiImplicitParam` -> `@Parameter` - `@ApiImplicitParams` -> `@Parameters` - `@ApiModel` -> `@Schema` -- `@ApiModelProperty(hidden = true)` -> `@Schema(accessMode = READ_ONLY)` +- `@ApiModelProperty(allowEmptyValue = true)` -> `@Schema(nullable = true)` - `@ApiModelProperty` -> `@Schema` - `@ApiOperation(value = "foo", notes = "bar")` -> `@Operation(summary = "foo", description = "bar")` - `@ApiParam` -> `@Parameter` diff --git a/src/docs/asciidoc/v1/ui-properties.adoc b/src/docs/asciidoc/v1/ui-properties.adoc index c466f9b..5144b77 100644 --- a/src/docs/asciidoc/v1/ui-properties.adoc +++ b/src/docs/asciidoc/v1/ui-properties.adoc @@ -7,7 +7,7 @@ |springdoc.swagger-ui.enabled | `true` | `Boolean`. To disable the swagger-ui endpoint (/swagger-ui.html by default). |springdoc.swagger-ui.configUrl | `/v3/api-docs/swagger-config` | `String`. URL to fetch external configuration document from. |springdoc.swagger-ui.layout | `BaseLayout` | `String`. The name of a component available via the plugin system to use as the top-level layout for Swagger UI. -|springdoc.swagger-ui.validatorUrl | `https://validator.swagger.io/validator` | By default, Swagger UI attempts to validate specs against swagger.io's online validator. You can use this parameter to set a different validator URL, for example for locally deployed validators link:https://github.com/swagger-api/validator-badge[Validator Badge, window="_blank"]. Setting it to either `none`, `127.0.0.1` or `localhost` will disable validation. +|springdoc.swagger-ui.validatorUrl | | By default, Swagger UI does not validate specs. You can use this parameter to set a validator URL, for example for against swagger.io’s online validator. |springdoc.swagger-ui.tryItOutEnabled | `false` |`Boolean`. Controls whether the "Try it out" section should be enabled by default. |springdoc.swagger-ui.filter | `false` | `Boolean OR String`. If set, enables filtering. The top bar will show an edit box that you can use to filter the tagged operations that are shown. Can be Boolean to enable or disable, or a string, in which case filtering will be enabled using that string as the filter expression. Filtering is case sensitive matching the filter expression anywhere inside the tag. |springdoc.swagger-ui.operationsSorter | | `Function=(a => a)`. Apply a sort to the operation list of each API. It can be 'alpha' (sort by paths alphanumerically), 'method' (sort by HTTP method) or a function (see Array.prototype.sort() to know how sort function works). Default is the order returned by the server unchanged.