小编Jos*_*ing的帖子

如何在某些操作所需的定义中创建字段而不是其他操作

我正在用yaml写出我的招摇定义.假设我的定义看起来像这样.

paths:
  /payloads:
    post:
      summary: create a payload
      ...
      parameters:
      - in: body
        name: payload
        description: New payload
        required: true
        schema:
          $ref: "#/definitions/payload"
    put:
      summary: update a payload
      ...
      parameters:
      - in: body
        name: payload
        description: Updated existing payload
        required: true
        schema:
          $ref: "#/definitions/payload"
...
definitions:
  payload:
    properties:
      id:
        type: string
      someProperty:
        type: string
      ...
Run Code Online (Sandbox Code Playgroud)

有没有办法可以指示PUT操作需要有效负载的id属性,并且POST操作是可选的(或者根本不应该出现)?

swagger swagger-2.0 swagger-editor

17
推荐指数
1
解决办法
6679
查看次数

如何在Swagger规范中定义不同示例的数组?

我正在尝试使用静态swagger文件来记录API,该文件可以返回一些包含类似于以下内容的数组的JSON:

[
  {
    "type": "type A",
    "field A": "this field is specific to type A"
  },
  {
    "type": "type B",
    "field B": "this field is specific to type B"
  }
]
Run Code Online (Sandbox Code Playgroud)

我尝试了几种使用多态或明确定义多个示例来定义规范的方法.这些例子总是看起来像:

[
  {
    "type": "type A",
    "field A": "this field is specific to type A",
    "field B": "this field is specific to type B"
  }
]
Run Code Online (Sandbox Code Playgroud)

要不就:

[
  {
    "type": "type A",
    "field A": "this field is specific to type A"
  }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法在我的swagger规范中定义一个示例,以便swagger-ui显示的示例有效负载将包含一个包含Type A示例的数组和一个B类示例,就像我写的第一个JSON一样?

swagger swagger-ui swagger-2.0 swagger-editor

6
推荐指数
2
解决办法
7780
查看次数

如何集成测试自定义Spring Boot样式入门库的自动配置?

我正在编写一个库,以提供一些在我使用的多个不同Spring Boot应用程序之间共享的功能。

我想做一些类似于许多Spring Boot启动程序库提供的自动配置的事情。该方法或其他一些简单的声明性方法,可将我的库与使用它的应用程序的ApplicationContext集成在一起。

我找到了一些资源来解释自动配置的工作原理。我可以找出上述问题。

但是,我还没有找到任何很好的示例说明如何将其适当地集成到Spring Boot应用程序中作为我的库测试套件的一部分进行测试。理想情况下,我将直接启动一个用于库测试的简单Spring Boot应用程序,只是为了进行测试,向其添加正确的批注,然后能够断言是否配置了正确的bean。

我尝试创建一个做到这一点的TestApplication类,并使用SpringBootTest批注编写集成测试,但是在我的测试开始之前,从未启动过TestApplication。

仅出于测试我的库的目的,我可以做些什么来启动一个简单的应用程序?我的测试是用Spock和Spock-Spring编写的,以防与其他测试框架发生变化。

spring spring-test spock spring-boot

6
推荐指数
1
解决办法
3368
查看次数

使用grails 3.x域对象的特征和约束

是否有可能以某种方式为这些字段创建具有字段和约束的特征,然后创建实现该特征的域类并使用约束来获取字段?

我的代码基本上看起来像:

trait Shared {
  String sharedField

  static constraints = {
    sharedField nullable: true
  }
}

class ImplementingClass implements Shared {
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后,使用null sharedField保存一个ImplementingClass实例,但会违反约束.

是否有可能做到这一点?是否存在在域对象实现的特征中使用约束和其他GORM构造所需的替代语法?

grails groovy grails-orm

5
推荐指数
1
解决办法
1578
查看次数

使用'gradle test'测试Grails 3 app使用错误的环境配置

我有一个Grails 3应用程序,我正在尝试配置嵌入式数据存储区以进行功能测试.我有针对'test'环境特定的数据存储区的配置.

当我运行'grails test-app'时,应用程序连接到正确的数据存储区,我的功能测试通过.

当我尝试使用'gradle test'测试应用程序时,它会尝试连接到开发环境的数据存储区并失败.

我已经尝试通过将此添加到build.gradle来指定Grails环境以用于gradle测试任务:

test {
    String testEnvArg = '-Dgrails.env=test'

    if (jvmArgs) {
        jvmArgs.add(testEnvArg)
    } else {
        jvmArgs = [testEnvArg]
    }
}
Run Code Online (Sandbox Code Playgroud)

但这种行为似乎没有改变.

如何使gradle"test"任务使用正确的Grails环境配置?

grails gradle

5
推荐指数
1
解决办法
811
查看次数

在对其应用自定义约束验证器之前验证类型的字段

我有一个类似这样的课程

@MyValidator
class Demo {
    @NotNull
    Instant startDate
    ...
}
Run Code Online (Sandbox Code Playgroud)

在MyValidator约束的ConstraintValidator中,我进行一次调用,要求startDate不为null.

如果在我的@MyValidator约束之前验证了startDate上的@NotNull约束,我就不用担心了,但在我的测试中,首先验证了@MyValidator并且我得到了一个N​​PE.

我如何向调用我的ConstraintValidator的验证器指示在字段级别@NotNull约束之后应该验证@MyValidator约束,或者自己显式验证@NotNull约束作为我的ConstraintValidator实现的第一步?

java spring bean-validation spring-data

3
推荐指数
1
解决办法
868
查看次数