Swagger 2.0离线验证
Swagger 2.0 offline validation
我知道有一个工具可以进行在线验证:
http://online.swagger.io/validator?url=http://petstore.swagger.io/v2/swagger.json
我正在编写一个 JUnit
测试来验证项目的 swagger.json
文件。重要的是可以 离线 完成此验证,因为测试以 localhost
运行,并且该验证工具无法访问本地主机服务器。
那么,是否可以离线验证 Swagger 2.0 JSON 文件?
好吧,我使用 fge/json-schema-validator 和 Jackson 完成了一个 Swagger 验证器。它使用 Swagger 2.0 模式进行验证。
https://gist.github.com/mariosotil/e1219d4e946c643fe0e5
@Singleton
public class SwaggerValidator {
public ArrayNode validate(JsonNode jsonNode) {
return Optional.of(jsonNode)
.map(this::validateWithinSwaggerSchema)
.map(this::getMessagesAsJsonArray)
.get();
}
// [...]
}
我已经创建了一个 Maven 项目来验证 swagger JSON 文档,如果你决定使用 Maven 进行 运行 你的测试。
您可以在此处克隆项目:https://github.com/navidsh/maven.swagger.validator
我对 Atlassian 的这个验证器非常满意:https://bitbucket.org/atlassian/swagger-request-validator
开发仍在进行中,所以我猜他们也会为 OpenAPI 3 提供一些东西。
我知道有一个工具可以进行在线验证:
http://online.swagger.io/validator?url=http://petstore.swagger.io/v2/swagger.json
我正在编写一个 JUnit
测试来验证项目的 swagger.json
文件。重要的是可以 离线 完成此验证,因为测试以 localhost
运行,并且该验证工具无法访问本地主机服务器。
那么,是否可以离线验证 Swagger 2.0 JSON 文件?
好吧,我使用 fge/json-schema-validator 和 Jackson 完成了一个 Swagger 验证器。它使用 Swagger 2.0 模式进行验证。
https://gist.github.com/mariosotil/e1219d4e946c643fe0e5
@Singleton
public class SwaggerValidator {
public ArrayNode validate(JsonNode jsonNode) {
return Optional.of(jsonNode)
.map(this::validateWithinSwaggerSchema)
.map(this::getMessagesAsJsonArray)
.get();
}
// [...]
}
我已经创建了一个 Maven 项目来验证 swagger JSON 文档,如果你决定使用 Maven 进行 运行 你的测试。
您可以在此处克隆项目:https://github.com/navidsh/maven.swagger.validator
我对 Atlassian 的这个验证器非常满意:https://bitbucket.org/atlassian/swagger-request-validator
开发仍在进行中,所以我猜他们也会为 OpenAPI 3 提供一些东西。