여러로 분할 된 JSON 파일에서 swagger yaml 파일 생성
라는 상황이 되어 버려 갱신이 힘들어 버렸기 때문에.
어째서 이렇게 될 때까지 내버려 두었다든가, 그 관리 방법은 잘못되어 있군요! 라고 하면 그때까지입니다만……
이런 방법도 있잖아, 라는 것으로.
구현 예
{
"swagger": "2.0",
"info": {
"description": "create-swagger-yml-from-many-json",
"version": "1.0.0",
"title": "create-swagger-yml-from-many-json"
},
"host": "localhost",
"basePath": "/",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"$ref": "./path.json"
}
}
const fs = require('fs');
const JsonRefs = require('json-refs');
const YAML = require('json2yaml');
const root = require('./sample/index.json');
const options = {
filter: ['relative', 'remote']
};
const outputPath = process.cwd() + '/swagger.yml';
process.chdir('sample');
JsonRefs.resolveRefs(root, options)
.then(function (res) {
fs.writeFileSync(outputPath,
YAML.stringify(res.resolved)
);
}, function (err) {
console.log(err.stack);
});
대상 json 파일을 읽고 jsonRefs라는 라이브러리에서 $ref 부분을 결합하고 있습니다.
키모는 process.chdir('sample') 입니다.
$ ref를 찾을 때 curret 디렉토리를 기반으로 찾아 버리므로 chdir에서 current 디렉토리를 변경해 드리겠습니다.
결과
---
swagger: "2.0"
info:
description: "create-swagger-yml-from-many-json"
version: "1.0.0"
title: "create-swagger-yml-from-many-json"
host: "localhost"
basePath: "/"
schemes:
- "https"
consumes:
- "application/json"
produces:
- "application/json"
paths:
/test_api:
get:
summary: "TEST API"
parameters: []
responses:
200:
schema:
type: "object"
properties:
id:
type: "integer"
description: "店舗ID"
example: 1
name:
type: "string"
description: "店舗名"
example: "店舗!"
merge한 결과가 생겼습니다!
추가
매일 갱신해 보려고 생각했지만, 재료 조각이 심하다!
Reference
이 문제에 관하여(여러로 분할 된 JSON 파일에서 swagger yaml 파일 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fumihiko-hidaka/items/39d654f8f8969a4c1c22
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
{
"swagger": "2.0",
"info": {
"description": "create-swagger-yml-from-many-json",
"version": "1.0.0",
"title": "create-swagger-yml-from-many-json"
},
"host": "localhost",
"basePath": "/",
"schemes": [
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"$ref": "./path.json"
}
}
const fs = require('fs');
const JsonRefs = require('json-refs');
const YAML = require('json2yaml');
const root = require('./sample/index.json');
const options = {
filter: ['relative', 'remote']
};
const outputPath = process.cwd() + '/swagger.yml';
process.chdir('sample');
JsonRefs.resolveRefs(root, options)
.then(function (res) {
fs.writeFileSync(outputPath,
YAML.stringify(res.resolved)
);
}, function (err) {
console.log(err.stack);
});
---
swagger: "2.0"
info:
description: "create-swagger-yml-from-many-json"
version: "1.0.0"
title: "create-swagger-yml-from-many-json"
host: "localhost"
basePath: "/"
schemes:
- "https"
consumes:
- "application/json"
produces:
- "application/json"
paths:
/test_api:
get:
summary: "TEST API"
parameters: []
responses:
200:
schema:
type: "object"
properties:
id:
type: "integer"
description: "店舗ID"
example: 1
name:
type: "string"
description: "店舗名"
example: "店舗!"
merge한 결과가 생겼습니다!
추가
매일 갱신해 보려고 생각했지만, 재료 조각이 심하다!
Reference
이 문제에 관하여(여러로 분할 된 JSON 파일에서 swagger yaml 파일 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/fumihiko-hidaka/items/39d654f8f8969a4c1c22
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(여러로 분할 된 JSON 파일에서 swagger yaml 파일 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fumihiko-hidaka/items/39d654f8f8969a4c1c22텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)