@RestController
@Api(description="Querying concepts")
public class KnowledgeModelController {
private ConceptService conceptService;
@Autowired
public KnowledgeModelController(ConceptService conceptService) {
this.conceptService = conceptService;
}
@ApiOperation(value = "Returns a concept identified by its URI, optionally restricted by its branch", response = ConceptService.Concept.class)
@RequestMapping(value = "/concept", method = RequestMethod.GET)
public ConceptService.Concept getConcept(Optional<String> branch, String uri) {
return conceptService.getConcept(branch, uri);
}
}
这个问题显然可以通过将整个webapp移动到非根上下文路径来解决。但是,我不能走这条路由,因为客户端已经知道并使用它的某些endpoint。
如何让springfox和swagger在这种情况下工作呢?
我找到的解决方案实现了以下策略:
为了执行第一个操作,我只需向RestController类添加一个@RequestMapping(“/RestPath”)注释。
@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
super.addViewControllers(registry);
registry.addRedirectViewController("/restpath/v2/api-docs", "/v2/api-docs").setKeepQueryParams(true);
registry.addRedirectViewController("/restpath/swagger-resources/configuration/ui","/swagger-resources/configuration/ui");
registry.addRedirectViewController("/restpath/swagger-resources/configuration/security","/swagger-resources/configuration/security");
registry.addRedirectViewController("/restpath/swagger-resources", "/swagger-resources");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/restpath/**").addResourceLocations("classpath:/META-INF/resources/");
}
}
我已经将SpringFox依赖项添加到我的Spring Boot项目中,当我打开swagger-ui.html页面时,我可以看到我自己创建的RestControllers的文档,我确实看到了以下文档: 基本错误控制器 默认值 null 如何向default/loginendpoint添加文档?
使用 ORM,我想做一个 POST 请求,让一些具有值的字段,这些字段将在数据库中转换为那里指定的默认值。 问题是OpenAPI(Swagger)文档忽略默认的,并且默认情况下仍然提示。 在我们找到的文档中的OpenAPI模式示例(请求正文)中: 这是不行的,因为我指定默认值为 ,所以我期望这样做: 这会将一个 传递给 ,最后将在数据库中解析为默认值(即新生成的
假设我有一个简单的Java数据类: 注意:在实践中,我使用不可变来生成这个,但是为了简单起见,我在这里显示了一个POJO。 要记录响应的模型,即使返回类型是,我也可以引用中的类: 基于此,斯威格将正确记录以下内容: 型号: 示例值: 为了记录主体的模型,我直接在代码中使用类,Swagger找到它并根据需要记录它: 我也想支持部分更新。我不能使用POJO本身,因为POJO中的所有字段都是强制性的,当
我有一个JAX-RS方法,它采用Map来促进部分更新。 我不能使用补丁,说来话长。我需要记录客户端可以发送哪些参数,以便他们可以在昂首阔步的UI中看到它们。一种方法是使用 这是一个不错的工作。PartialUpdatePerson是一个包含允许发送的各种参数的类。 问题是在swagger UI中,它仍然用地图显示我的身体。样本值为: 以及有效载荷。 有没有,我可以告诉炫耀,不显示这个?即从文档的角
在尝试获取allowableValues标记的枚举值时,我遇到了以下错误。 批注属性apimodelProperty.AllowAbleValues的值必须是常量表达式 我想做的是: 我有可能做我想做的事吗?我知道在我的API中只公开枚举是可能的,然后swagger会自动识别允许的值,但是需要将有问题的字段公开为字符串,即使我们的内部逻辑将其作为枚举。 提前感谢您的帮助!
Java16引入了记录,这有助于在编写携带不可变数据的类时减少样板代码。当我尝试将记录用作bean时,我得到以下错误消息: 如何将记录用作?