如何解决验证Openapi 3.0 Spring Boot RESTful API中的URL参数吗?
在我的openapi规范中,我为特定资源路径指定URL参数,例如:
writeXML.WriteProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\"");
使用openapi 3.0代码生成一个Spring Boot RESTful API,该API自动生成一个名称类似于xxxxDelegate的接口,该接口的方法必须像这样实现:
paths:
/some/path:
get:
summary: some summary
parameters:
name: usefulParameter
description:
schema:
type: string
maxLength: 15
在界面顶部有一条注释,指出:
由{@link YourApiController}}调用的委托。 使用带有注释的{@link org.springframework.stereotype.Service}类来实现此接口。
所以我正是这样做的,这导致我自己的类看起来像这样:
default ResponseEntity<Object> somePathGet(String usefulParameter) {
getRequest().ifPresent(request -> {
for (MediaType mediaType: MediaType.parseMediaTypes(request.getHeader("Accept"))) {
if (mediaType.isCompatibleWith(MediaType.valueOf("application/json"))) {
String exampleString = "null";
ApiUtil.setExampleResponse(request,"application/json",exampleString);
break;
}
}
});
return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED);
}
到目前为止,此操作完美。我可以调用它并记录输入参数。我遇到的问题是,我似乎在任何地方都找不到关于如何将验证分配给该输入参数的文档--未应用Openapi'maxLength',并且Spring / Spring Boot除非您使用Model类型类并注释成员,否则似乎没有提供将验证应用于这些参数的方法。我宁愿避免这种情况,而只是告诉API 此URL参数需要特定的验证,例如最小/最大长度或某个字符集。
这可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。