我正在用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文件来记录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一样?
我正在编写一个库,以提供一些在我使用的多个不同Spring Boot应用程序之间共享的功能。
我想做一些类似于许多Spring Boot启动程序库提供的自动配置的事情。该方法或其他一些简单的声明性方法,可将我的库与使用它的应用程序的ApplicationContext集成在一起。
我找到了一些资源来解释自动配置的工作原理。我可以找出上述问题。
但是,我还没有找到任何很好的示例说明如何将其适当地集成到Spring Boot应用程序中作为我的库测试套件的一部分进行测试。理想情况下,我将直接启动一个用于库测试的简单Spring Boot应用程序,只是为了进行测试,向其添加正确的批注,然后能够断言是否配置了正确的bean。
我尝试创建一个做到这一点的TestApplication类,并使用SpringBootTest批注编写集成测试,但是在我的测试开始之前,从未启动过TestApplication。
仅出于测试我的库的目的,我可以做些什么来启动一个简单的应用程序?我的测试是用Spock和Spock-Spring编写的,以防与其他测试框架发生变化。
是否有可能以某种方式为这些字段创建具有字段和约束的特征,然后创建实现该特征的域类并使用约束来获取字段?
我的代码基本上看起来像:
trait Shared {
String sharedField
static constraints = {
sharedField nullable: true
}
}
class ImplementingClass implements Shared {
...
}
Run Code Online (Sandbox Code Playgroud)
然后,使用null sharedField保存一个ImplementingClass实例,但会违反约束.
是否有可能做到这一点?是否存在在域对象实现的特征中使用约束和其他GORM构造所需的替代语法?
我有一个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环境配置?
我有一个类似这样的课程
@MyValidator
class Demo {
@NotNull
Instant startDate
...
}
Run Code Online (Sandbox Code Playgroud)
在MyValidator约束的ConstraintValidator中,我进行一次调用,要求startDate不为null.
如果在我的@MyValidator约束之前验证了startDate上的@NotNull约束,我就不用担心了,但在我的测试中,首先验证了@MyValidator并且我得到了一个NPE.
我如何向调用我的ConstraintValidator的验证器指示在字段级别@NotNull约束之后应该验证@MyValidator约束,或者自己显式验证@NotNull约束作为我的ConstraintValidator实现的第一步?
grails ×2
spring ×2
swagger ×2
swagger-2.0 ×2
gradle ×1
grails-orm ×1
groovy ×1
java ×1
spock ×1
spring-boot ×1
spring-data ×1
spring-test ×1
swagger-ui ×1