Apicurio-studio: github์—์„œ ๊ธฐ์กด ๋ชจ๋ธ์„ ์—ด๋ ค๊ณ  ํ•  ๋•Œ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2017๋…„ 12์›” 05์ผ  ยท  6์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Apicurio/apicurio-studio

github์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” OpenApi ์‚ฌ์–‘์˜ ์˜ˆ์ œ๋ฅผ ์—ด๋ ค๊ณ  ํ•˜๋Š”๋ฐ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์กด์žฌํ•˜์ง€ ์•Š๋Š” ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค! ๋’ค๋กœ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๊ฑฐ๋‚˜ ๋Œ€์‹œ๋ณด๋“œ(์•„๋ž˜ ๋ฒ„ํŠผ)๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. https://github.com/OAI/OpenAPI-Specification/blob/master/examples/v3.0/callback-example.yaml

apicurio ์ €์žฅ์†Œ์—์„œ ์˜ˆ์ œ๋ฅผ ์—ด๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. https://github.com/Apicurio/apicurio-studio/blob/master/back-end/hub-api/src/test/resources/io/apicurio/hub/ api/beans/simple-api-3.0.json
ํŒŒ์ผ ์œ ํ˜•, json ๋Œ€ yaml ์ž…๋‹ˆ๊นŒ?

๋ชจ๋“  6 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” ํ”ผ๋“œ๋ฐฑ ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ถˆํ–‰ํžˆ๋„ ํ˜„์žฌ Apicurio๋Š” YAML ์ฝ๊ธฐ/์“ฐ๊ธฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— ๋Œ€ํ•œ ๊ธฐ๋Šฅ ์š”์ฒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

https://github.com/Apicurio/apicurio-studio/issues/165

ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์ง€๋งŒ ๋Œ€๊ธฐ์—ด์— ์žˆ๋Š” ๊ฒƒ๋ณด๋‹ค ์•ž์„œ ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. :)

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ YAML์—์„œ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ GitHub์— ์ €์žฅํ•œ ๋‹ค์Œ ์—ด์–ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์งœ์ฆ๋‚˜๋Š” ๊ฑด ์•Œ์ง€๋งŒ, ์šฐ๋ฆฌ๊ฐ€ apicurio์— ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€๋Š” ์ž‘๋™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ : API ์ถ”๊ฐ€/๊ฐ€์ ธ์˜ค๊ธฐ ์‹œ ๋” ๋‚˜์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์œ ํšจํ•œ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ์ž…๋‹ˆ๋‹ค. ์ž์›์„ ์ฐพ์„ ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ (URL์—์„œ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์˜ˆ) ์šฐ๋ฆฌ๋Š” ( "ํŽ˜์ด์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"์˜ค๋ฅ˜๋ฅผ๋ณด๊ณ ํ•˜์ง€ ์•Š์Œ) ๊ฒƒ์„๋ณด๊ณ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์ง€๋งŒ ํ˜•์‹์ด ์ž˜๋ชป๋œ ๊ฒฝ์šฐ ๋‹ค๋ฅด๊ฒŒ ๋ณด๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

OpenAPI 3 JSON ๋˜๋Š” ์œ„์— ๋งํฌ๋œ ์˜ˆ์ œ๊ฐ€ ์˜ค๋Š˜ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. URL์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ:

https://github.com/Apicurio/apicurio-studio/blob/master/back-end/hub-api/src/test/resources/io/apicurio/hub/api/beans/simple-api-3.0.json

๋˜๋Š”

https://github.com/david4096/data-object-schemas/blob/openapi3/openapi/data_objects_service.openapi.json

์•ˆ๋…•ํ•˜์„ธ์š” @david4096 - ํ•ด๋‹น URL์— ์‹ค์ œ๋กœ ์ฝ˜ํ…์ธ ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ฒซ ๋ฒˆ์งธ URL์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์ ์–ด๋„ ํ•ด๋‹น ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๋ฉด ํŒŒ์ผ์ด ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ•ด๋‹น ๋ชจ๋“ˆ์˜ src/test ๋‚ด์— resources ํด๋”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

https://github.com/Apicurio/apicurio-studio/tree/master/back-end/hub-api/src/test

๊ทธ๋Ÿฌ๋‚˜, ๋‘ ๋ฒˆ์งธ URL์—์„œ ๋ถ„๋ช…ํžˆ ๋‚ด์šฉ์ด์žˆ๋‹ค. Apicurio์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ถˆํ–‰ํžˆ๋„ ์•„์ง ๋ถ„๊ธฐ(๋งˆ์Šคํ„ฐ๋งŒ)์—์„œ ์ฝ˜ํ…์ธ  ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ธŒ๋žœ์น˜๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ต์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ถ„๋ช…ํžˆ ๋ˆ„๋ฝ๋œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์šฐ๋ฆฌ๋Š” ๊ฐ๊ฐ์˜ API๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ ๋Œ€์‹  ์ž„์˜์˜ URL์—์„œ API ๋””์ž์ธ์„ ์ถ”๊ฐ€/๊ฐ€์ ธ์˜ค๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ์‹œ์Šคํ…œ์— ๋” ๋งŽ์ด ์˜์กดํ•  ๋•Œ๋ถ€ํ„ฐ). "URL์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ" ๊ธฐ๋Šฅ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์—ฌ ๋‹ค์Œ ๋ฒ„์ „์— ํฌํ•จ์‹œํ‚ค๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ๋กœ์„œ๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ์ถ”๊ฐ€/๊ฐ€์ ธ์˜ค๊ธฐํ•˜๋ ค๋Š” API๋ฅผ github ์ €์žฅ์†Œ์˜ ๋งˆ์Šคํ„ฐ ๋ธŒ๋žœ์น˜์— ์ €์žฅํ•˜๊ณ (์•„๋งˆ๋„ ์ด ๋ชฉ์ ์„ ์œ„ํ•œ ์ €์žฅ์†Œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ) ๊ฑฐ๊ธฐ์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์†Œ์Šค ์ œ์–ด์—์„œ ๋ถ„๊ธฐ๋ฅผ ์ง€์›ํ•˜๋Š” ํ‹ฐ์ผ“์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

https://github.com/Apicurio/apicurio-studio/issues/222

๊ทธ๋Ÿฌ๋‚˜ ์ž„์˜์˜ URL์—์„œ ์ฝ˜ํ…์ธ ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด ๋” ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฏ€๋กœ ๋จผ์ € ํ•ด๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @EricWittmann ์„ค๋ช… ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰