验证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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...