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

Swagger ApiModel Value class 的 Property

徐旻
2023-03-14

我正在尝试使用Swagger Play2模块为一个Play应用程序生成api文档。我们使用大量的值类来增加类型安全和代码可读性。

其中一个操作为案例类生成JSON,如下所示:

case class MyResponse(prop1: MyValueType, prop2: MyValueType)

其中MyValueType是这样一个值类:

case class MyValueType(value: String)

它被格式化为JSON,就像使用自定义<code>格式[T]的字符串一样。

Swagger UI生成如下示例JSON代码:

{
  "prop1": {
      "value": "string"
  },
  "prop2": {
      "value": "string"
  }
}

虽然我希望它生成这个:

{
  "prop1": "string",
  "prop2": "string"
} 

我尝试过这样的自定义注释,但似乎不起作用:

case class MyResponse(
  @ApiModelProperty(dataType="string") prop1: MyValueType, 
  @ApiModelProperty(dataType="string") prop2: MyValueType, 
)

关于如何实现这一点有什么建议吗?

共有3个答案

申屠昌胤
2023-03-14

我尝试了@ApiModelProperty(dataType=“String”)@ApiModelProperty(dataType=“String”)。它们都不起作用。

然而,< code > @ ApiModelProperty(dataType = " Java . lang . string ")在我的例子中是有效的。

我的springfox版本:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.1</version>
</dependency>

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.1</version>
</dependency>
司马渝
2023-03-14

Swagger正在将您的案例类MyValueType包装在您的案例类MyResponse中。

它将忽略您的< code>dataType注释,并仍在解析< code>MyValueType

你尝试过对你的属性做更完整的注释吗?类似于:

case class MyResponse(@ApiModelProperty(
                          value = "Property 1",
                          dataType="string") prop1: MyValueType, 
                      @ApiModelProperty(
                          value = "Property 2",
                          dataType="string") prop2: MyValueType)

顺便说一句,Swagger中的数据类型不区分大小写,因此string等价于String

茅才
2023-03-14

尝试用大写的dataType="String "

 类似资料:
  • 问题内容: 在我的应用程序上下文中,我定义了属性文件: 我想获取JSP页面上该文件中定义的属性的值。有没有办法做到这一点 问题答案: 只能解析Spring配置中的占位符(XML或注释)。在Spring应用程序中使用bean 是非常普遍的。您可以通过这种方式从视图中访问它(假设您正在使用): 然后,在您的JSP中,您可以使用或。

  • 我正在迁移log4j1.2。8至log4j 2.3。一切正常,除此之外,我没有为PropertyConfiguration找到任何替代品。 是否有其他类来处理PropertyConfiguration之前所做的工作?

  • 我正在使用读取属性文件。我如何以编程方式访问它们(不起作用--在开发时我不知道属性标题)? 主要问题是我无法更改文件,因为它是由“父”框架设置的 ps.很奇怪,但返回

  • 问题内容: 我有2个需要绑定在一起的文件:hibernate.cfg.xml和hibernate属性。如何使用PropertyPlaceholderConfigurer将它们彼此指向?是否可以不将它们声明为bean?(我是Spring的初学者)。每个答案表示赞赏。 提前致谢。 纳扎尔 hibernate.cfg.xml: hibernate.properties: 问题答案: 是的,您可以访问两个

  • 在Spring专家上有应用 我想有不同的应用程序。不同配置文件的属性,通过命令行传递。 我的数据库配置为: 如果我想为不同的服务器(qa和at)使用不同的配置文件,我需要创建两个这样的类,标记为@Profile(“qa”)和@Profile(“at”) 确实存在创建两个应用程序的方法。属性,将参数传递到命令行,并在@(PropertySource)路径中插入qa或at应用程序。属性? 在启动应用程

  • 我会用这样的方法来利用这些价值: 但是,我最终出现了一个错误,如下所示: 我如何在我的测试中也利用YAML的优点?