当前位置: 首页 > 知识库问答 >
问题:

SpringFox大摇大摆-可选的,必填字段

韶英达
2023-03-14

我使用SpringFox库来获取我的Spring Boot应用程序的Rest文档。当我单击模型时,所有元素都作为可选元素返回。有没有办法将必需的元素显示为必需元素?是否需要添加任何其他配置?

共有3个答案

荀靖
2023-03-14

在Swagger配置中尝试类似的代码:

    @Bean
public Docket api() {

    List<ResponseMessage> list = new java.util.ArrayList<>();
    list.add(new ResponseMessageBuilder().code(500).message("500 message")
            .responseModel(new ModelRef("JSONResult«string»")).build());
    list.add(new ResponseMessageBuilder().code(401).message("Unauthorized")
            .responseModel(new ModelRef("JSONResult«string»")).build());

    return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
            .paths(PathSelectors.any()).build().securitySchemes(Collections.singletonList(securitySchema()))
            .securityContexts(Collections.singletonList(securityContext())).pathMapping("/")
            .directModelSubstitute(LocalDate.class, String.class).genericModelSubstitutes(ResponseEntity.class)
            .alternateTypeRules(newRule(
                    typeResolver.resolve(DeferredResult.class,
                    typeResolver.resolve(ResponseEntity.class, WildcardType.class)),
                    typeResolver.resolve(WildcardType.class)))
            .useDefaultResponseMessages(false).apiInfo(apiInfo()).globalResponseMessage(RequestMethod.GET, list)
            .globalResponseMessage(RequestMethod.POST, list);
}

在控制器映射中添加< code > @ request body @ Valid MyRequestClass req 例如,如果您在请求体中传递对象,如果您传递参数,则添加类似于< code > @ request param(value = " email ",required = true,defaultValue = " ")字符串email的内容

此外,请参见配置代码中如何引用具有一般类型的类,即引用< code>JSONResult的< code >“JSON result string”

乐城
2023-03-14

在Springfox v2.3.2中增加了对bean验证注释的支持,特别是对@NotNull、@Min、@Max和@Size的支持。

您可以将这些注释放在任何API模型上。

为了使用它,添加springfox bean validators依赖项:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-bean-validators</artifactId>
</dependency>

添加到应用程序的配置类:

java prettyprint-override">@Import({springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration.class})

见:https://spring fox . github . io/spring fox/docs/current/# spring fox-support-for-JSR-303

柯清野
2023-03-14

是。默认情况下,所有字段都是可选的。要根据需要标记字段,可以使用以下注释。

@ApiModelProperty(required = true)

关于应要求的场的吸气剂方法。这不会将字段显示为“强制”。但文档中此字段的可选标记将被删除。

希望这有帮助。

 类似资料:
  • 我有一个java项目(tomcat webapp)和一些REST Api。我想为他们生成大摇大摆的文档。我从本教程(github)开始。我没有maven我们使用蚂蚁任务。我加入了swagger-annotations-1.5.0。jar和所有随swagger jaxrs jar 1.5.0版本附带的jar(如果有用的话,我可以包括一个完整的列表),我已经注释了一些方法,我有一个如下的配置类: }

  • 有没有人用spring-data-rest配置了swagger。我知道swagger有DocumentationConfig类,它扫描所有spring-mvc请求映射。但是,如何将其用于spring-data-rest,因为没有定义显式的请求映射。非常感谢在这方面的任何帮助。此外,我还想知道,是否有其他支持Spring-Data-REST的文档框架。

  • 我们在我们的泽西应用程序中使用了@Role允许注释来限制用户对应用编程接口某些部分的访问。我们如何在SwaggerUI中显示这些信息? 到目前为止,我已经用@ApiOperation注释了方法以显示in/out参数,并尝试使用@Authorization/@AuthorizationScope,但我只为我们不使用的oauth2显示了它。最接近out case的是ApiKeyAuthDefiniti

  • 理想情况下,我们将有一个显示所有标记为public的控制器/方法的大摇大摆的页面,以及另一个显示所有endpoint的密码安全endpoint。这可能吗?

  • 它没有任何问题,没有抛出异常或任何其他迹象。为什么?

  • 嗯,标题很容易理解,但要详细说明: 编辑:根据@Anatoly的要求,这是昂首阔步的路线定义: