首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring上的Swagger 2--我能为在API下显示的所需的参数设置完整的句号吗?

Spring上的Swagger 2--我能为在API下显示的所需的参数设置完整的句号吗?
EN

Stack Overflow用户
提问于 2020-01-13 09:43:58
回答 2查看 79关注 0票数 0

我有一个名为/predict的api。

所需的参数有时可以是score1score2

info.score1info.score2取决于我们得到的数据集。

现在,它在我的本地主机上的样子:8080/swagger-ui.html是

以下是我如何实现这一目标:

代码语言:javascript
复制
@ApiOperation(value="", response=RequestInput.class)
@RequestMapping(value="/predict", method= RequestMethod.POST, produces="application/json", consumes="application/json")
    public ResponseEntity predict(Map<String, Object> inputs, @RequestBody RequestInput requestInput) {
    ...
}

RequestInput.class看起来像这样

代码语言:javascript
复制
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;

public class RequestInput {
    @ApiModelProperty(notes = "", required = true)
    @Getter private Double score1;
    @ApiModelProperty(notes = "", required = true)
    @Getter private Double score2;
}

我有两个问题:

  1. 有可能有

代码语言:javascript
复制
{
  "info.score1":0,
  "info.score2":0
}

  1. 如何设置Responses部件的示例值?现在,它反映了requestInput上的内容。我希望是

代码语言:javascript
复制
{
  "finalScore":0
}
EN

回答 2

Stack Overflow用户

发布于 2020-01-13 09:51:53

关于您的第一个问题: ApiModelProperty有“名称”,可以设置为显示您想要的属性名。第二步:检查io.swagger.annotations.ApiResponses和io.swagger.annotations.ApiResponse。ApiResponse有一个示例属性,也可以设置该属性。关于您问题的一部分,您的api有时可以是一个值,有时也可以是另一个值:老实说,我认为这是不可能得到默认的昂首阔步的行为。

票数 0
EN

Stack Overflow用户

发布于 2020-01-13 10:07:15

要处理请求中的动态属性值,可以添加setter setInfoScore1 & setInfoScore2并用@JsonProperty标记它们

代码语言:javascript
复制
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;

public class RequestInput {
    @ApiModelProperty(notes = "", required = true)
    @Getter private Double score1;
    @ApiModelProperty(notes = "", required = true)
    @Getter private Double score2;

    @JsonProperty("info.score1")
    public void setInfoScore1(Double score) {
        this.score = score;
    }

    @JsonProperty("info.score2")
    public void setInfoScore2(Double score) {
        this.score = score;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59713985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档