gpt4 book ai didi

java - 如何手动描述 java @RequestBody Map 的示例输入?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:55:28 25 4
gpt4 key购买 nike

我正在设计一个 api,其中一个 POST 方法采用 Map<String, String>任何键值对。

@RequestMapping(value = "/start", method = RequestMethod.POST)
public void startProcess(
@ApiParam(examples = @Example(value = {
@ExampleProperty(
mediaType="application/json",
value = "{\"userId\":\"1234\",\"userName\":\"JoshJ\"}"
)
}))
@RequestBody(required = false) Map<String, String> fields) {
// .. does stuff
}

我想为 fields 提供一个示例输入但我似乎无法让它在 swagger 输出中呈现。这不是正确的使用方式吗 @Example

最佳答案

@g00glen00b 的回答中提到的问题似乎已经解决。这是如何完成的代码片段。

在你的 Controller 类中:

// omitted other annotations
@ApiImplicitParams(
@ApiImplicitParam(
name = "body",
dataType = "ApplicationProperties",
examples = @Example(
@ExampleProperty(
mediaType = "application/json",
value = "{\"applicationName\":\"application-name\"}"
)
)
)
)
public Application updateApplicationName(
@RequestBody Map<String, String> body
) {
// ...
}

// Helper class for Swagger documentation - see http://springfox.github.io/springfox/docs/snapshot/#q27
public static class ApplicationProperties {

private String applicationName;

public String getApplicationName() {
return applicationName;
}

public void setApplicationName(String applicationName) {
this.applicationName = applicationName;
}

}

此外,您需要将以下行添加到您的 Swagger 配置中:

// omitted other imports...
import com.fasterxml.classmate.TypeResolver;

@Bean
public Docket api(TypeResolver resolver) {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
.apiInfo(apiInfo())
// the following line is important!
.additionalModels(resolver.resolve(DashboardController.ApplicationProperties.class));
}

可在此处找到更多文档:http://springfox.github.io/springfox/docs/snapshot/#q27

关于java - 如何手动描述 java @RequestBody Map<String, String> 的示例输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41861164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com