![](/img/trans.png)
[英]How to create multiple schema in @RequestBody of swagger openapi specification 3.0 using springdoc?
[英]How to remove default endpoints brought from OpenAPI Swagger 3.0 specification
我有一個 SpringBoot 應用程序,我為其創建了一個 Swagger 實現。 但是,新的 OpenAPI 3.0 規范帶來了一個默認部分,其中包含大量不必要的端點/元數據。 我找不到解決方案來刪除包含所有這些端點的默認部分,這些端點默認添加到我的 REST API 框架的 Swagger 實現中。 有沒有人遇到過這樣的問題?
這些端點來自哪里? 如何刪除它們?
@RequestMapping("/addresses")
@RestController
@PermitAll
@Tag(name="Addresses",description="Addresses API")
public class AddressRest {
@Autowired
private AddressesService addressService;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<AddressDTO> findAll() {
return this.addressService.findAll();
}
application.yml 文件如下所示。 我嘗試使用 paths-to-exclude 屬性,但它似乎不起作用。 我錯過了什么?
springdoc:
swagger-ui:
path: /swagger-ui.html
query-config-enabled: true
api-docs:
path: /api/openapi.json
enabled: false
paths-to-exclude:
- /api/healthcheck
build.gradle 文件包含以下依賴項:
implementation 'org.springdoc:springdoc-openapi-ui:1.6.12'
implementation 'io.swagger.core.v3:swagger-jaxrs2:2.2.6'
我不確定這是否仍然是事實上的標准,但您可以使用OpenApiConfig
class(或您用來配置 Swagger 的任何一個 class)中的Docket
配置從 Swagger 文檔中排除特定端點。 我在我的一個較舊的項目中發現了這個(並為您的案例修改了路徑):
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(Predicates.not(PathSelectors.regex("/api/.*")))
.build();
}
這個帶有Predicates.not
的正則表達式將排除所有匹配/api/.*.
但我想強調的是,這是用很多舊版本完成的,我不確定這是否仍然有效。 在評論中讓我知道!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.