swagger 파일의 유효성을 검사하려고합니다 (실제로 gradb 빌드의 일부로). swagger-parser을 사용해 보았습니다. 그러나 swagger가 전혀 구문 분석하지 않으면 작동하고 오류가 발생하지만 문제는 http://editor.swagger.io/#/에서 발생하지 않습니다. (내가 뭘 찾고 있는지)swagger의 유효성 검사
분명히 이것은 이것을하기위한 방법이 있어야만하는 공통된 문제일까요?
나는 시도했다 :
이build.gradle :
이 compile("io.swagger:swagger-parser:1.0.31")
몇 가지 명백한 문제에 간단한 자신감 :
swagger: '2.0'
info:
description: 'This is a sample server Petstore server.'
version: 1.0.0
title: Swagger Petstore
termsOfService: http://swagger.io/terms/
contact:
email: [email protected]
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
host: petstore.swagger.io
basePath: /v2
paths:
/pet:
post:
tags:
- pet
summary: Add a new pet to the store
description: ''
operationId: addPet
parameters:
- in: body
name: body
description: Pet object that needs to be added to the store
required: true
schema:
type: '#/definitions/Pet'
responses:
'405':
description: Invalid input
security:
- petstore_auth:
- write:pets
- read:pets
definitions:
Category:
type: petObject
properties:
id:
type: integer
format: int64
name:
type: string
xml:
name: Category
Pet:
type: object
required:
- name
- photoUrls
properties:
id:
type: integer
format: int64
category:
$ref: '#/definitions/Category'
name:
type: string
example: doggie
xml:
name: Pet
그리고 간단한 클래스를 테스트합니다 (로 이것을 결국 그라데이션으로 이동시키려는 의도) :
class SwaggerTest {
public static void main(String[] args) {
SwaggerTest st = new SwaggerTest();
st.validate();
}
private void validate() {
try {
String content = new String(Files.readAllBytes(Paths.get("petstore.yml")));
SwaggerParser swaggerParser = new SwaggerParser();
SwaggerDeserializationResult result = swaggerParser.readWithInfo(content);
swaggerParser.parse(content);
Swagger swagger = result.getSwagger();
if (swagger == null) {
System.out.println("Unable to validate swagger");
}else {
System.out.println("Read the swagger");
}
List<String> messageList = result.getMessages();
for(String message: messageList) {
System.out.println(message);
}
} catch(Exception e) {
System.out.println("Error!! "+ e.getMessage());
}
}
}
위의 swagger는 http://editor.swagger.io/에서 볼 수있는 것처럼 여러 가지 문제점을 가지고 있습니다. 그러나 swagger-parser는 그에 대해 알려주지 않습니다.