2016-09-30 4 views
0

수백 개의 경로와 개체를 설명하는 5k 줄의 긴 swagger.json 파일이 있습니다. 엔드 포인트의 일부만 사용하여 TypeScript 클라이언트 (swagger-codegen 사용)를 생성하려고합니다. 생성 된 TypeScript 응용 프로그램에 swagger.json의 사용되지 않는 부분과 연결된 클래스 또는 인터페이스가 포함되는 것을 원하지 않습니다.생성 된 Swagger를 필터링하는 방법

지정된 경로 그룹을 설명하는 Swagger 설명서의 일부만 필터링하는 방법 (예 : 모든 경로 시작 /api/*)? 특히 필터링 된 JSON에 사용되지 않는 데이터 구조에 definitions이 포함되지 않도록하고 싶습니다.

답변

0

으로 수정 된 JSON을 통과를 만들기 위해, 우리는 swagger-json-filter을 생성 - 명령 줄 도구는 자신감의 documentat 필터링 허용 이온. 쉽게 떠들썩한 파티에서 다른 명령에 따라 사용될 수있다 :

cat input.json | swagger-json-filter --include-paths="^\/api\/.*" > output.json 

툴 출력으로부터 (또는 중첩) 바람직하지 않은 정의를 필터링하는 데 필요한 로직을 실행한다.

1

저는 작업 자동화 (쓸데없는 것, 꿀꺽 마심, 껍질, 뭐든간에)를 사용하여이 작업을 수행 할 수 있다고 생각합니다. 는 기본적으로는 3 단계의 작업이 될 수 있습니다 :

  1. 가 swagger.json를 얻을 수 (또는 java -jar swagger-codegen-cli-x.x.x.jar generate -i <URL> -l swagger -o GeneratedCodeSwagger 같은과 함께 JSON을 얻을 수있는 자신감 코드 세대를 호출)
  2. 이 정의를 제거합니다/당신이 원하는 경로 제외 및 수정 swagger.json
  3. 전화 코드 세대 마지막으로 java -jar swagger-codegen-cli-x.x.x.jar generate -i GeneratedCodeSwagger\swagger.json -l typescript-angular
+0

답변 해 주셔서 감사합니다. 이것은 내가이 문제를 해결하는 것에 관한 유일한 생각이었습니다. 나는 단지 그것을 할 수있는 다른 방법이나 도구가 없다는 것을 확신하고 싶었다. 그래서 node.js에 간단한 명령 행 도구를 작성하려고합니다. – Terite

관련 문제