Skip to content

Commit c2fe311

Browse files
authored
Merge pull request #45735 from phillip-kruger/swagger-ui-external-scripts
Enable new scripts config in Swagger UI
2 parents f9b789c + 20fe535 commit c2fe311

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

extensions/swagger-ui/deployment/src/main/java/io/quarkus/swaggerui/deployment/SwaggerUiConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,12 @@ public class SwaggerUiConfig {
256256
@ConfigItem
257257
Optional<List<String>> plugins;
258258

259+
/**
260+
* A list of external scripts (usually plugins) to use in Swagger UI.
261+
*/
262+
@ConfigItem
263+
Optional<List<String>> scripts;
264+
259265
/**
260266
* A list of presets to use in Swagger UI.
261267
*/

extensions/swagger-ui/deployment/src/main/java/io/quarkus/swaggerui/deployment/SwaggerUiProcessor.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,11 @@ private byte[] generateIndexHtml(String openApiPath, String swaggerUiPath, Swagg
348348
options.put(Option.plugins, plugins);
349349
}
350350

351+
if (swaggerUiConfig.scripts.isPresent()) {
352+
String scripts = String.join(",", swaggerUiConfig.scripts.get());
353+
options.put(Option.scripts, scripts);
354+
}
355+
351356
if (swaggerUiConfig.presets.isPresent()) {
352357
String presets = swaggerUiConfig.presets.get().toString();
353358
options.put(Option.presets, presets);

extensions/swagger-ui/deployment/src/test/java/io/quarkus/swaggerui/deployment/SwaggerOptionsTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class SwaggerOptionsTest {
2222

2323
@Test
2424
public void customOptions() {
25-
RestAssured.when().get("/q/swagger-ui").then().statusCode(200)
25+
RestAssured.when().get("/q/swagger-ui").then().log().all().and().statusCode(200)
2626
.body(
2727
containsString("Testing title"),
2828
containsString("/openapi"),
@@ -33,7 +33,9 @@ public void customOptions() {
3333
containsString("validatorUrl: 'localhost'"),
3434
containsString("displayRequestDuration: true"),
3535
containsString("supportedSubmitMethods: ['get', 'post']"),
36-
containsString("plugins: [Plugin1, Plugin2]"));
36+
containsString("plugins: [Plugin1, Plugin2]"),
37+
containsString("https://unpkg.com/swagger-ui-plugin-hierarchical-tags"),
38+
containsString("/some/local/script.js"));
3739

3840
}
3941

@@ -61,5 +63,7 @@ private static String getPropertyAsString() {
6163
PROPERTIES.put("quarkus.swagger-ui.display-request-duration", "true");
6264
PROPERTIES.put("quarkus.swagger-ui.supported-submit-methods", "get,post");
6365
PROPERTIES.put("quarkus.swagger-ui.plugins", "Plugin1,Plugin2");
66+
PROPERTIES.put("quarkus.swagger-ui.scripts",
67+
"https://unpkg.com/swagger-ui-plugin-hierarchical-tags,/some/local/script.js");
6468
}
6569
}

0 commit comments

Comments
 (0)