ํ๋์ API ๋ด์์ ์ฌ๋ฌ API ์ฒญ์ฌ์ง ํ์ผ์ ์ง์ํฉ๋๋ค.
๋ง์ ์์ API๊ฐ ์๊ณ ํ์ฌ์ ๋ค๋ฅธ ๊ทธ๋ฃน์ด ์ ์ดํ ์ ์๋ ์ํฉ์ ๊ฒฝ์ฐ ์ด๊ฒ์ ์ ๋์ ์ธ ์ ์ ์ ๋ฌผ์ด ๋ ๊ฒ์ ๋๋ค.
@rurounijones ์ค๋ช ์ ์ํด ์ด ๊ธฐ๋ฅ์ "ํ๋์ API ์ค๋ช ์ ์ฌ๋ฌ ํ์ผ๋ก ๋ถํ ํ ์ ์์"์ ์๋ฏธํฉ๋๋ค.
๋๊ตฌ๋ ์ง ์ด๊ฒ์ ๋ํด ์ด๋ค ์๊ฐ์ด ์์ต๋๊น? Drafter
https://github.com/apiaryio/snowcrash/issues/57#issuecomment -28538342์ ๋ํ ๋ด ์ด์ ์๊ฒฌ์ ๋ฐ๋ผ
์ต์ ์ ์ฒญ์ฌ์ง ์๋จ์ ์ผ๋ถ ํฌํจ/์๊ตฌ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ฑฐ๋ ๋๋ ํ ๋ฆฌ์์ ๋ชจ๋ ์ฒญ์ฌ์ง์ ๊ฐ์ ธ์์ ํจ๊ป ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค.
์๊ฐ?
์ฐ๊ฒฐ์ ๋ ๊ฐ๋จํ์ง๋ง ๋ด๊ฐ ์ํ๋ ๋๋ก require๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๊ณ ๊ทธ ๋ค์์ ๋ค๋ฅธ ๊ฒ์ ์ถ๊ฐํฉ๋๋ค.
์ด๊ฒ์ ํนํ์ ์ ์๋ ๊ฒ์ฒ๋ผ ํ์ผ์ ๋ด์ฉ์ ๋งน๋ชฉ์ ์ผ๋ก ์ธ๋ผ์ธํ๋ ๊ฒ์ ๋๊น, ์๋๋ฉด ํ์ผ์ ๋ด์ฉ์ ์ด๋ค ์ข ๋ฅ์ ์ ํ์ด ์์ต๋๊น(์: ๊ณ ์ ํ yaml ํค๋๋ฅผ ๊ฐ์ง ์ ์์ต๋๊น? ์์ yaml๊ณผ์ ์ถฉ๋?) ๋๋ ์ ํ์ด ์๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์ด๋ผ๋ ๋๋์ ๋ฐ์์ง๋ง ๊ทธ๊ฒ์ ๊บผ๋ผ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
@zdne
๋จผ์ , ๊ฐ๋จํ ํ์ผ ์ฐ๊ฒฐ์ ์ฌ์ฉํ์ฌ Grunt๋ก ์ด๋ฏธ ์ด๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ธฐ์ด ์์คํ ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ์ ์ฒญ์ฌ์ง์ ๊ด๋ฆฌํ ์ ์๊ฒ ๋์๊ณ , ์ด๊ฒ์ ํ์ผ๋ก ๋ถํ ํ๋ ๋น ๋ฅด๊ณ ๋๋ฌ์ด ๋ฐฉ๋ฒ์ด์์ต๋๋ค(์ฐธ๊ณ ๋ก, ํ์ผ ์์คํ ์์์ ๋ฐ๋ผ ์ฐ๊ฒฐ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์์ ์ผ๋ก ๋ง์ ํ์ผ์ด ์์). ์ฌ๊ธฐ ์ ์งง์ ์ค๋ช ๊ณผ ํจ๊ป ๋ด Gruntfile์ ๊ฒ์ํ์ต๋๋ค.
์ฐ๊ฒฐ์ด ๋๋ฌด ๊ฐ๋จํ์ฌ ์ค์ค๋ก ๊ตด๋ฆด ์ ์๋ค๋ ์ ์ ๊ฐ์ํ ๋ "๊ณต์" ๋๊ตฌ๊ฐ ๋ ๊ฐ๋ ฅํด์ผ ํ๋ค๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค. ๋ค๋ฅธ ์์คํ ์์ ์ด ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ฐ๊ตฌ๋ฅผ ์ํํ๋ฉด์ ์ด์ ๋ํด ๋ ๋ง์ด ์๊ฐํ๊ณ ์์ต๋๋ค.
[Model Reference][]
๊ตฌ๋ฌธ๋ณด๋ค ๋ ๊ฐ๋ ฅํ ์ฐธ์กฐ ์์คํ
์ด ํ์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ด์์ ์ผ๋ก ํฌํจ๋ ํ์ผ์ ๋ชจ๋ ๋
ธ๋๋ ์ฃผ์๋ฅผ ์ง์ ํ ์ ์์ผ๋ฏ๋ก [github.Users.'Create A User'][]
๋๋ [github][POST /users]
๋ฑ๊ณผ ๊ฐ์ ๋
ธ๋๊ฐ ์์ ์ ์์ต๋๋ค. ( =
์ ๊ฐ์ ์ ๋์ฌ๊ฐ ํ์ํ ์๋ ์์ต๋๋ค.) name ๋๋ url+method ์ธ์ AST์ ํน์ ๋
ธ๋๋ฅผ ์ฐธ์กฐํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?=[]()
๋๋ :[]()
๊ตฌ๋ฌธ๊ณผ ๊ฐ์ต๋๋ค. ์ฌ์ ํ ์ ํจํ ๋งํฌ๋ค์ด์ด๋ฉฐ snowcrash๋ก ๊ตฌ๋ฌธ ๋ถ์ํ ์ ์์ต๋๋ค.[github]['Create A User']
) ๋ฐ ์ง์ ๋ณํ( :[/github.md](/github.md)
)์ ๋ํ ๊ตฌ๋ฌธ์ ์ ์ํ๋ฉด ๋ ๋ค ์ฝ๊ฒ ๊ฐ์ง ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ง๋ :[]()
์ ๊ฐ์ ์ผ๋ฐ ๊ตฌ๋ฌธ์ด ์์ ์ ์์ผ๋ฉฐ ํ์๋ ๋
ธ๋์ธ์ง ํ์ผ ์ฐธ์กฐ์ธ์ง ๊ฒฐ์ ํฉ๋๋ค.์ด์ ๋ํ ์๊ฐ์ด ์์ต๋๊น? ์ผ๋ถ ์ต์ /๋๊ตฌ๊ฐ ๋๋ฝ๋์์ต๋๊น? ๋๋ transclusion ๋ฐ node ์ญ์ฐธ์กฐ๋ฅผ ์ํ ๊ณตํต ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ "both" ์ต์ ์ ์ ํธํ์ง๋ง ์๋ง๋ ๊ทธ ์ ๋์ผ ๊ฒ์ ๋๋ค.
์ฐ๊ฒฐ์ด ์ค์ค๋ก ๊ตด๋ฆฌ๊ธฐ๊ฐ ๋๋ฌด ์ฝ๋ค๋ ์ ์ ๊ฐ์ํ ๋ "๊ณต์" ๋๊ตฌ๊ฐ ๋ ๊ฐ๋ ฅํด์ผ ํ๋ค๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ ๋๋ค.
๊ธ์, ๊ฒฐ๊ตญ์ ๊ทธ๋ด ์๋ ์๊ฒ ์ง๋ง, ๋๋ ๊ทธ๊ฒ์ ์ง๋์น๊ฒ ๋์์ธํ์ง ์๊ณ ๊ตฌ๊ฑธ์์ ๊ฐ๊ฒฐํ๊ณ ๋จ์ํ ๊ฒ์ ๋กค์์ํ๊ณ ์ถ์ต๋๋ค.
ํด๊ฒฐํด์ผ ํ ํ์ฌ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด๋ฉด ์ฃผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ถํ ์ ์ํด ๋ฆฌ์์ค ๊ทธ๋ฃน ๋๋ ๋ฆฌ์์ค(์: ์์ , ํธ๋์ญ์ ์์ ๋๋ ์์ฒญ ์ ์ธ)๋ง ๊ณ ๋ คํฉ๋๋ค. ์ ์ด๋ ์ฒ์์๋.
๊ด๊ณ 1: _์ฐธ์กฐ๋ ์์ฐ_์ด #20์ ์ ์์ ์ํด ์ฐ์ํ๊ฒ ์ฒ๋ฆฌ๋๊ณ https://github.com/apiaryio/snowcrash/issues/57#issuecomment -28564071 ๋ ผ์๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ด๊ณ 2: ๋๋ ๊ทธ๊ฒ์ ์ ํ ๋ณต์กํ๊ฒ ๋ง๋ค์ง ์์ ๊ฒ์
๋๋ค. ๋ด๊ฐ transclusion์ ์ฌ์ฉํ ์ ์ผํ ๊ฒ์ [Some Text](path/to/blueprint/file.apib)
๋๋ [Some Text](path/to/blueprint/file.apib#resource-name)
์ ๊ฐ์ ์ผ๋ฐ ๋งํฌ๋ค์ด ๊ตฌ๋ฌธ์
๋๋ค. ํฌํจ์ ์ํด ๋๋ํํฐ์ ์์ฐ๊ณผ ๋์ผํ ์์น์ ๋ฐ๋ฅผ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด ์ฐธ์กฐ ์ ์ :
๋ฅผ ์ฌ์ฉํฉ๋๋ค. https://gist.github.com/zdne/8804418#aliens -question-aliens_question๊ณผ ๊ฐ์ ๊ฒ
๋๋ ์ด๊ฒ์ด ์์์ ์ถฉ๋ถํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น?
๋๋ ์ด๊ฒ์ด ์์์ ์ถฉ๋ถํ ์ ์๋ค๊ณ ์๊ฐํฉ๋๊น?
๋์. ๋๋ ๋น์ ์ด "์์ฐ"์ ํฌํจํ๋ ๊ฒ๊ณผ "๋ฆฌ์์ค"/"๋ฆฌ์์ค ๊ทธ๋ฃน"์ ํฌํจํ๋ ๊ฒ์ ๊ตฌ๋ณํ๊ณ ์๋ค๋ ๊ฒ์ ์ด์ ์ผ ๊นจ๋ฌ์์ต๋๋ค. ๋๋ ๊ทธ๋ค ๋ชจ๋๋ฅผ ๋ง์๋๋ก ํฌํจ์ํฌ "๋ ธ๋"๋ก ์๊ฐํ๊ณ ์์์ต๋๋ค.
๋ ๋ฒ์งธ ์์ ์ ๋ํด์๋ ๊ธฐ์กด MultiMarkdown ๊ตฌ๋ฌธ ์ ์ฐธ์กฐํ๋ ๊ฒ์ด ์ ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค.
This is some text.
{{some_other_file.txt}}
Another paragraph
์ด๊ฒ์ ๋ฆฌ์์ค๋ฅผ ํฌํจํ๋ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ฒ๋ผ ๋ณด์ ๋๊น? (๋๋ ์ค์ ๋ก ์์์ ํ ์คํธ/๋ ธ๋?)
๋ฐ๋ผ์ ๋ด ์๊ฒฌ์ ๋ช ํํํ๊ธฐ ์ํด :
:[]()
๋๋ =[]()
์
๋๋ค.{{ }}
๊ฒ์
๋๋ค.๋ํ ์ผ๋ถ ์ดํ๋ฅผ ๋ช ํํ ํ๊ธฐ ์ํด: "ํฌํจ"์ด๋ผ๊ณ ํ๋ ๊ฒ์ ์ ๊ฐ "transclusion"์ด๋ผ๊ณ ๋งํ ๋ ์๋ฏธํ๋ ๋ฐ, ์ฆ ์๋ฆฌ ํ์์๋ฅผ ๋ค๋ฅธ ํ์ผ์ ํ ์คํธ๋ก ์์ ํ ๋์ฒดํ๋ ๊ฒ์ ๋งํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ์๋ค๋ฉด "์ฐธ์กฐ"์ "ํฌํจ"/"๋ณํ"์ ์ฐจ์ด์ ์ ๋จ์ํ _๋ ๋๋ง_์ ์ํ ๊ฒ์ ๋๋ค. ํ์์๊ฒ ์์ฐ(์: ์์ฐ)์ด ์ฐธ์กฐ๋๊ฑฐ๋ ์ ์ธ๋๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ผ๋ฉฐ ๋์ผํ AST ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ฉ๋๋ค. ๊ทธ ๋ง์ต๋๊น?
ํ ๊ฐ์ง ๋ฐฉ๋ฒ ๋์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด ๋์ ๊ตฌ๋ฌธ์ ์ผ๋ก ๊ตฌ๋ณํ๋ฉด ์ด๋ค ์ด์ ์ด ์์ต๋๊น? ๊ฐ์ธ์ ์ผ๋ก ๋๋ 1๋ฒ์ ์ ํธํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ์ฌ์ ํ โโํ๋ฒํ Markdown์์ ๋ฐ๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
"ํฌํจ"์ด๋ผ๊ณ ํ๋ฉด ์ ๊ฐ "ํธ๋์คํด๋ฃจ์ ผ"์ด๋ผ๊ณ ํ ๋ ์๋ฏธํ๋ ๋ฐ, ์ฆ ์๋ฆฌ ํ์์๋ฅผ ๋ค๋ฅธ ํ์ผ์ ํ ์คํธ๋ก ์์ ํ ๋ฐ๊พธ๋ ๊ฒ์ ์๋ฏธํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋์ํฉ๋๋ค. ์ด์ ๋ถํฐ transclusion์ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค. ๊ฐ์ฌ ํด์!
๋ด๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๊ณ ์๋ค๋ฉด "์ฐธ์กฐ"์ "ํฌํจ"/"๋ณํ"์ ์ฐจ์ด์ ์ ๋จ์ํ ๋ ๋๋ง์ ์ํ ๊ฒ์ ๋๋ค.
์ค๋ง. ๋ด ์๊ฒฌ์ผ๋ก๋ ์ฐธ์กฐ(์ฐธ์กฐ ์์ฑ)๋ ์ค์ ๋ก ์ถ๋ ฅ(AST)์ ๋ํ ๋งํฌ๋ง ์ถ๊ฐํ๊ณ ๋๋จธ์ง๋ ๋๊ตฌ์ ๋จ๊ฒจ ๋์ด์ผ ํฉ๋๋ค(https://github.com/apiaryio/api-blueprint/issues/20#issuecomment-26766374 )
Translcusion์ ํ์(๋๋ ์ ์ฒ๋ฆฌ๊ธฐ)์ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋๋ก ์ง์ํด์ผ ํฉ๋๋ค...
ํ ๊ฐ์ง ๋ฐฉ๋ฒ ๋์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ฌ์ฉํด์ผ ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? ์ด ๋์ ๊ตฌ๋ฌธ์ ์ผ๋ก ๊ตฌ๋ณํ๋ฉด ์ด๋ค ์ด์ ์ด ์์ต๋๊น? ๊ฐ์ธ์ ์ผ๋ก ๋๋ 1๋ฒ์ ์ ํธํฉ๋๋ค. ์๋ํ๋ฉด ๊ทธ๊ฒ์ ์ฌ์ ํ โโํ๋ฒํ Markdown์์ ๋ฐ๋ฅผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ ๋จ์ง ํ๋๋ฅผ ๊ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๋ณผ ์ ์์ต๋๋ค (๋ํ ์ฒซ ๋ฒ์งธ ๋ฐฉ๋ฒ์ธ :[][]
๋๋ =[][]
์ ์ ํธํฉ๋๋ค).
์ ๋ณด๋ฅผ ๋ณํํ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ์ด๋ฉด์ ์์ด๋์ด๋ AST์ html/md/etc ๋ ๋๋ง์ ์ ์ดํ๋ โโ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ๋๋ค.
:[link][link.md]
๋ ๋งํฌ๋ค์ด์์ :link
์ฒ๋ผ ๋ณด์ด๋ ๋งํฌ๋ก ๋ ๋๋ง๋์ง๋ง AST์์ ํด๋น ๋
ธ๋๋ link.md์ ๋ํ ์ฐธ์กฐ๋ฅผ ๋ณด์ ํฉ๋๋ค.=[link][link.md]
๋ ๋งํฌ๋ค์ด์์ link.md์ _content_๋ก ๋ ๋๋ง๋ฉ๋๋ค. AST ํํ์ 1๊ณผ ๋์ผํ๊ฒ ๋ณด์
๋๋ค.๊ทธ๋์ ๋๋ ์ฌ๊ธฐ์ ์์ ํ ๋ฒ์ด๋ ์ ์๊ณ ์ด๊ฒ์ ํ์ํ์ง ์์ ์ ์์ผ๋ฉฐ ์ฐ๋ฆฌ๋ ํ๋์ ๊ตฌ๋ฌธ์ผ๋ก ๊ฐ์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ด ์ถ๋ก ์ ์ฒญ์ฌ์ง์ด ํ์๋๋ ๋ฐฉ์์ด AST๋ก ๊ตฌ๋ฌธ ๋ถ์๋๋ ๋ฐฉ์๊ณผ ๋ฌ๋ผ์ผ ํ ์๋ ์๋ค๋ ๊ฒ์ ๋๋ค.
๋ด ์๊ฒฌ์ผ๋ก๋ ์ฐธ์กฐ(์ฐธ์กฐ ์์ฑ)๋ ์ค์ ๋ก ์ถ๋ ฅ(AST)์ ๋ํ ๋งํฌ๋ง ์ถ๊ฐํด์ผ ํฉ๋๋ค. [...] Translcusion์ ํ์(๋๋ ์ ์ฒ๋ฆฌ๊ธฐ)๊ฐ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋๋ก ์ง์ํด์ผ ํฉ๋๋ค...
์ด๊ฒ์ ๋์ผํ ๊ฒ์ผ๋ก(ํ๋์ ๊ตฌ๋ฌธ) ๋๋ ๋ ๊ฐ์ ๊ฐ๋ณ ํญ๋ชฉ(2๊ฐ์ ๋ค๋ฅธ ๊ตฌ๋ฌธ)์ผ๋ก ์ฒ๋ฆฌํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค. ๋ ๋ค ๋์๊ฒ๋ ๊ด์ฐฎ์ ๋ณด์ธ๋ค. (๋ด๊ฐ ๋ ํผ๋์ค๋ฝ๊ฒ ๋ง๋ค์์ต๋๊น?)
:+1:
์ฌ๊ธฐ ์ ๋ฐ์ดํธ: ์ด๊ฒ์ ์ค์ ๋ก ๊ณํ๋์๊ณ ๋ง์ด ํ์ํฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๋๊ตฌ๋ฅผ ์ฐ๊ตฌํ๊ณ ์์ต๋๋ค. ํํธ Apiary ์จ๋ผ์ธ ํธ์ง๊ธฐ์ ์์กดํ์ง ์๋ ๊ฒฝ์ฐ https://gist.github.com/danvine/11087404 ๋๋ ์ด์ ์ ์ฌํ ๋ค๋ฅธ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Whisky๋ ์ด์ .apib
ํ์ฅ์๋ฅผ ์ง์ํ๊ณ ๊ฐ์ ๋ณด๊ธฐ๋ฅผ ํตํด ๋์ฉ๋ Markdown ํ์ผ์ ํจ์ฌ ์ฝ๊ฒ ํธ์งํ ์ ์์ต๋๋ค. http://vimeo.com/album/3108294/video/110486733
http://9muses.se/erato/ ๋ฐ http://25.io/mou/ ๋ ๋ฐ์คํฌํฑ ์ฑ(Mac์ฉ)์ ์ํ๋ ๊ฒฝ์ฐ .apib๋ ์ง์ํฉ๋๋ค.
Robert Crooks ํ์ต ์๋น์ค ์ด์ฌ
๋ธ๋ผ์ดํธ์ฝ๋ธ
2015๋ 12์ 29์ผ ์คํ 4์ 8๋ถ์ Kevin Ingersoll [email protected] ์ด ๋ค์๊ณผ ๊ฐ์ด ์ผ์ต๋๋ค.
Whisky๋ ์ด์ .apib๋ฅผ ์ง์ํฉ๋๋ค.
ํ์ฅ์ ๋ฐ ๊ฐ์ ๋ณด๊ธฐ๋ก ๋์ฉ๋ Markdown ํ์ผ์ ํจ์ฌ ์ฝ๊ฒ ํธ์งํ ์ ์์ต๋๋ค. http://vimeo.com/album/3108294/video/110486733โ
์ด ์ด๋ฉ์ผ์ ์ง์ ๋ต์ฅํ๊ฑฐ๋ GitHub์์ ํ์ธํ์ธ์.
.
@bcls ์ @holic , ์ด ํธ์ง์๋ค์ ์ง์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๊ด๋ จ: https://github.com/apiaryio/api-blueprint/issues/20#issuecomment -77108398
์ด์ ๋ํ ํต์ฌ ๊ฐ๋ฐ์์ ๊ฒฐ์ ์ด ์์ต๋๊น? 2013๋ ๋ถํฐ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ฌ ์์ง๊น์ง ๋ช ํํ ๋ต๋ณ์ด ์์ต๋๋ค. ์ด ๋ถ๋ถ์ ๋ํด ์ ์ ๊ทธ์ด๋ด๋ ๋ ๊น์?
Hey @foxx ์์ง ์ด์ ๋ํ ๋ช ํํ ๊ฒฐ์ ์ด ์์์ต๋๋ค. ์ ๋ Hercule ์ ๋์ ๋ transclusion ๊ตฌ๋ฌธ์ ๊ธฐ๋๊ณ ์์ต๋๋ค.
FORMAT: 1A
# Gist Fox API
Gist Fox API is a **pastes service** similar to [GitHub's Gist](http://gist.github.com).
# Group Gist
:[Gist](blueprint/gist.md)
:[Gists](blueprint/gists.md)
์ ์ธํ
`````` ๋งํฌ๋ค์ด
+ Body
```
:[](gist.json)
```
``````
์ฝ๋ ๋ธ๋ก์ ํ์/์ ์ฒ๋ฆฌ๊ธฐ์ ๋ถํฌ๋ช ํ๊ฒ ์ ์ง๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ํ ์ ๋ ํธ๋์คํด๋ฃจ์ ์ด ์ด๋ค ์์ค์์๋ ์๋ํด์ผ ํ๋ค๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํธ๋์คํด๋ฃจ๋๋๋ ํ์ผ์ ์ ํจํ ์ฒญ์ฌ์ง ์์ฒด์ฌ์ผ ํฉ๋๋ค.
์ด์ ๋ํ ์ฝ์์ ๊ธฐ๋ฅ ๋ก๋๋งต์์ ์๋นํ ๋์ง๋ง ETA๋ ์์ง ์์ต๋๋ค.
์ด์ ๋ํ ์๊ฒฌ์ด๋ ์๊ฐ๊ณผ ๊ธฐ๋ฅ ๋ก๋๋งต ๊ฐ์์ฑ์ ๋ํ ์๊ฒฌ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌ ํด์!
transclusion ๊ตฌ๋ฌธ์ ์ง๊ธ๊น์ง ์ต๊ณ ์ ์ ์์ฒ๋ผ ๋ณด์ด๋ฉฐ ์ฐ์ํ๊ณ ๊น๋ํ ์ ๊ทผ ๋ฐฉ์์ด๋ฉฐ ์ง๊ธ๊น์ง ๋ด๊ฐ ๋ณธ ๋ค๋ฅธ ์ด๋ค ์ ์๋ณด๋ค ์ข์ต๋๋ค. Fwiw, ๋์๊ฒ์ +1.
์ด๊ฒ์ ๋ํ ์์์ด ์์ต๋๊น?
ํธ๋์คํด๋ฃจ์ ์ ์ฌ์ฉํ ์ ๊ทผ ๋ฐฉ์์ ๋์๊ฒ ์ข์ ๊ฒ ๊ฐ์ง๋ง ๋จ์ ์ ์์ต๋๋ค.
๋น๋ถ๊ฐ์ Hercule ๋ฐ :[Gist](blueprint/gist.md)
๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. API Blueprint ์ฌ์ ๋ฐ ํ์ ๋๊ตฌ ์ฒด์ธ์ผ๋ก ๋ค์ ๋ฐฑํฌํ
ํ๊ธฐ ์ํด ๋
ธ๋ ฅํ ๊ฒ์
๋๋ค.
์ด ๋ฌธ์ ์ ๋ํด ์ํ๋ ์์
์ด ์์ต๋๊น? ๋ํ ๋ ํฐ apib ํ์ผ์ ์ฌ๋ฌ ๊ฐ๋ก ๋๋๊ณ ์ถ์ต๋๋ค.
๊ฐ์ฌ ํด์!
์๋ ํ์ธ์ @adams-sarah๋ ๋ถํํ๋ ์ ํธ์ด ์๋๋๋ค. ๋๋ ์ฌ์ ํ Hercule(https://github.com/jamesramsay/hercule)์ ์ฌ์ฉ์ ์ง์งํฉ๋๋ค. ๊ฝค ์ ์๋ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ ์ผํ ๋จ์ ์ Apiary.io์์ ์ฌ๋ฌ ํ์ผ์ ํธ์งํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ์ด๋ป๊ฒ๋ ๋์ธ ์ ์๋์ง ์๋ ค์ฃผ์ธ์!
+1 hercule https://github.com/jamesramsay/hercule ์ฌ์ฉ
์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ์ ์ ๋์ ์ฌ์ฉํด ์์ผ๋ฉฐ ์ฌ์ ํ apib ์ฌ์์ ๋ค์ด๊ฐ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
:+1: ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค.
๋ํ ๋จ์ผ ๋ชฉ์ฐจ/์์ธ ๋ฐฉ๋ฒ๋ก ์ ์ง์ํฉ๋๋ค. Transclusion์ ์ฝ๊ฐ ๋๋ฌด ์ ์ฐํ๋ฉฐ ๋ด ๊ณผ๊ฑฐ ๊ฒฝํ์์ ๋๊ท๋ชจ Wiki ๊ธฐ๋ฐ ๋ฌธ์์์ ํ์ฅ๋์ง ์์์ต๋๋ค.
์์ค ๋งต์ ์ง์ํ๊ธฐ ์ํด ์ด๊ฒ์ ํ์ ์์ฒด์ ๊ตฌ์์ผ ํฉ๋๋ค.
๊ทธ๋์ Hercule ์ฌ์ฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์ค์ ์๋ฅผ ์ค๋นํ์ต๋๋ค โ https://github.com/apiaryio/api.apiblueprint.org
@zdne json-schema(interagent/prmd๋ฅผ ํตํด) ์ฌ์ฉ์์ ์ฐ๋ฆฌ๋ ๋ฆฌ์์ค ๋ผ์ธ์ ๋ฐ๋ผ ๊ทธ๊ฒ์ ๋ถํ ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ํฌํจ์ ์์ํ๊ธฐ ์ํด ํน์ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ํํฉ๋๋ค(์ด๋ ์ ๋ ๋๋ ํ ๋ฆฌ์ ์๋ ๋ชจ๋ ๊ฒ์ ํฌํจํ๋ ์ต์์ ์คํค๋ง๋ฅผ ๋น๋ํฉ๋๋ค. ํ์ ์คํค๋ง, ๊ทธ๋์ ๊ทธ๊ฒ์ ์ฌ๋ฌผ์ ์์ค์ ๋ณ๊ฒฝํฉ๋๋ค). ์ด๊ฒ์ ๋ถ๋ช ํ ์ฐ๋ฆฌ๊ฐ ํ๊ณ ์๋ ์ผ์ ๋งค์ฐ ์ ๋ฌธ์ ์ด๋ฉฐ ๊ทํ์ ๊ฒฝ์ฐ์๋ ํนํ ์ ์ ํ์ง ์์ง๋ง ์ฐ๋ฆฌ์ ๊ฒฝํ์ ๊ณต์ ํ๊ณ ์ถ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋นํด, ๋ด ์๊ฐ์ transclusion์ ํจ์ฌ ๋ ์ฐ์ํ๊ณ ์ ์ฐํด ๋ณด์ด์ง๋ง ํตํฉ๋ TOC/index๋ฅผ ๊ฐ๋ ๋ช ๊ฐ์ง ๊ฐ๋จํ ์๋จ๋ ๋ถ๋ช ํ ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ํ ๊ฒ๊ณผ ๋น์ทํ ์๋ ์์ต๋๋ค. ์ฆ, ์ด ์ธ๋ฑ์ค ์ญํ ์ ํ uber ์ฒญ์ฌ์ง์ ๋ง๋ ๋ค์ ๊ทธ ์์ ํ์ ์ฒญ์ฌ์ง์ ์ฝ์ /์ฐธ์กฐํฉ๋๋ค. ๋๋ ๊ทธ๊ฒ์ด ์๋์ผ๋ก ์ผ์ด๋๋ ์ข์ ์ผ์ด์ง๋ง ์ํ๋ ๋๋ก ๋์ง ์์ผ๋ฉด ์ด์ํ ๊ฒ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค. ์ด์จ๋ , ๊ทธ๊ฒ์ด ๋์์ด๋๋ค๋ฉด ๋ ๋ง์ ์ด์ผ๊ธฐ๋ฅผ ๋๋๊ฑฐ๋ ๋ด ๊ฒฝํ์ ๊ณต์ ํ๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
์ด ๊ธฐ๋ฅ์ ์ํ๋ ๋ฌด์์
๋๊น?
์ฐ๋ฆฌ๋ Apiary.io์์ Pro ํ๋์ ์ฌ์ฉํ๊ณ ์์ผ๋ฉฐ ์ด ๊ธฐ๋ฅ์ด ํ์ํฉ๋๋ค.
@DavidBM ์ ๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ apiary.apib
๋ฌธ์๊ฐ ์๋ ๊ฒ์
๋๋ค.
apiary-source.apib
- ํฌํจ ๊ธฐ๋ฅ ์ ์ฌ์ฉํ๋ ์ปดํ์ผ๋์ง ์์ ์์ค
FORMAT: 1A
HOST: https://api.example.com
# Hello World
<!-- include(blueprint/posts.apib) -->
๋ค์์ ๊ฐ๋จํ ์คํํ ์ ์์ต๋๋ค.
aglio --input apiary-source.apib --compile --output apiary.apib
์ด์ apiary.apib
์ blueprint/posts.apib
์ ๋ด์ฉ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
์๋ ํ์ธ์, ๊ฐ์ฌํฉ๋๋ค! ์, ํ์ง๋ง apiary.io์์ ๋ฌธ์๋ฅผ ํธ์งํ ์ ์์ต๋๋ค.
์ฐ๋ฆฌ๋ ์ด๋ฏธ Hercule๊ณผ ํจ๊ป ๋ง์ถคํ ์๋ฃจ์ ์ ๊ฐ์ง๊ณ ์์์ง๋ง ์ฐ๋ฆฌ๋ฅผ ์ํด ์๋ด์ฅ ํ๋ก๋ฅผ ์ง๋ถํ๋ ์์ ์ ์ ํ ๊ด๋ฆฌ์๊ฐ git์ ์ ๋ ฅํ์ง ์๊ณ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ฐ๋ฆฌ์๊ฒ ์์ ํ ๋ฐฉํด๊ฐ ๋ ๊น๋ด ๋๋ ต๊ณ ์ด๊ฒ์ด ํด๊ฒฐ๋์ง ์์ผ๋ฉด ์๋ด์ฅ๊ณผ์ ๊ณ์ฝ์ ์ทจ์ํ ๊ฒ์ ๋๋ค.
Hercule ๋ฐ ๊ธฐํ ๋๊ตฌ๋ฅผ ์ค๋ซ๋์ ์ฌ์ฉํ ์ ์๊ฒ ๋ ํ ์ด ์ํ๊ฐ ๋ ๊ฒ์ด๋ผ๊ณ ๋ ์์ํ์ง ๋ชปํ์ต๋๋ค.
์ด๊ฒ์ ๋งค์ฐ ์ค๋ง์ค๋ฝ์ต๋๋ค :(
์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ, ๋ฆ๊ฒ ์์ ์ค๋๋ ๋ฌผ๊ฑด์ ๋ค์ ์ด๊ณ ํ์ ์ฃ์กํฉ๋๋ค. ์ด๊ฒ์ด ์ฌ๋ฐ๋ฅธ ์ฅ์๊ฐ ์๋๋ผ๋ฉด ์ ๋ฅผ ์ฉ์ํ์ญ์์ค. ๊ทธ๋ฌ๋ ์ฒญ์ฌ์ง ๋ชจํ์ ๊ฐ๋ฐํ๊ธฐ ์ํ ์ฐ๊ตฌ๋ฅผ ํ๋ฉด์ ์ด ํ ๋ก ์ ์ฐพ์๊ณ ์ด๊ฒ์ด ์ง๊ธ๊น์ง ๋ด๊ฐ ์ฐพ์ ์ ์๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ ๋๋ค.
๋ด ์๋ต์ ๋ชจ๋ธ๋ณ๋ก ๋ถํ ํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. (. ๋ชจ๋ธ์ ๋ค๋ฅธ ํด๋๋ก ์ฐธ์กฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํ์ง ์์ต๋๊น?
๋ด ์ฒญ์ฌ์ง ํด๋ ์์ ๋ด ๋ชจ๋ ์์ฒญ์ด ์๊ณ , ์๋ฅผ ๋ค์ด ๋ถ๋ฆฌ๋ ๋ชจ๋ธ ํด๋์ ๋ด ๋ชจ๋ ์ํฐํฐ ๋ชจ๋ธ(MSON/MD/JSON/๋ฌด์์ด๋ ์ ํฉํ ํ์ผ)์ ๋ฃ์ด ๋ค๋ฅธ ์๋ต์ผ๋ก ์ฝ๊ฒ ์ฌ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ๋๊ตฌ๋ ์ง์ด ์์
์ ์ฑ๊ณต์ ์ผ๋ก ์ํ ํ์ต๋๊น?
์ด ๋ฌธ์ ๊ฐ ์ฝ๊ฐ์ ๊ด์ฌ์ ๋๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค. API Blueprint์๋ 26000์ค์ด ์์ผ๋ฉฐ ๊ด๋ฆฌํ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
์ฐ๋ฆฌ๋ Dredd๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ์ฝ ํ ์คํธ๋ฅผ ๊ตฌํํ๊ณ Aglio๋ฅผ ์ฌ์ฉํ๊ณ ์์ง๋ง ์ด๊ฒ์ด ์ถ๊ฐ๋์ด
๊ทธ ์ด์ ์ค ํ๋๋ ์ฐ๋ฆฌ๊ฐ ๋์์ธ์ ๋ง์ด ๋ฐ๋ณตํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. :) ์ด ๋ฌธ์ ๊ฐ ๊ณต๊ฐ๋์์ ๋ MSON์ด ์์๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ํธ๋์คํด๋ฃจ์ ๊ณผ ์ฐธ์กฐ์ ๋ํด ๊ณ ๋ฏผํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ธฐ๋ก์ ์ํด ๊ฑฐ๊ธฐ์ ๋ฌด์์ด ํ์ํฉ๋๊น? ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ค์ค ํ์ผ ๊ด๋ฆฌ ๋ฐ ๋จ์ผ ๋ฌธ์ ์ปดํ์ผ์ ๋๊น, ์๋๋ฉด ์ฌ๋ฌ API ์ค๋ช ๋ฌธ์์์ ๋ชจ๋ธ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ๊ณผ ๊ณต์ ๋นํธ ๋ฐ ์กฐ๊ฐ์ ๋ํด์๋ ์ด์ผ๊ธฐํฉ๋๊น?
๊ทธ ์ด์ ์ค ํ๋๋ ์ฐ๋ฆฌ๊ฐ ๋์์ธ์ ๋ง์ด ๋ฐ๋ณตํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. :) ์ด ๋ฌธ์ ๊ฐ ๊ณต๊ฐ๋์์ ๋ MSON์ด ์์๊ณ ์ฐ๋ฆฌ๋ ์ฌ์ ํ ํธ๋์คํด๋ฃจ์ ๊ณผ ์ฐธ์กฐ์ ๋ํด ๊ณ ๋ฏผํ๊ณ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๊ธฐ๋ก์ ์ํด ๊ฑฐ๊ธฐ์ ๋ฌด์์ด ํ์ํฉ๋๊น? ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ค์ค ํ์ผ ๊ด๋ฆฌ ๋ฐ ๋จ์ผ ๋ฌธ์ ์ปดํ์ผ์ ๋๊น, ์๋๋ฉด ์ฌ๋ฌ API ์ค๋ช ๋ฌธ์์์ ๋ชจ๋ธ์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ์ฑ๊ณผ ๊ณต์ ๋นํธ ๋ฐ ์กฐ๊ฐ์ ๋ํด์๋ ์ด์ผ๊ธฐํฉ๋๊น?
์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ์ ๋์ ์์ ์ค๋ ํ์ค ์๋ต์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ณด๊ดํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ทผ์ฒ์ ๋จ์ผ ์ฅ์์์ ์ ์ํ ์ ์๊ธฐ๋ฅผ ์ํ๊ณ , ๊ทธ๋ฆฌ๊ณ ๋์ ์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์๋ตํด์ผ ํ ๋๋ง๋ค ๊ทธ๊ฒ์ ๊ฐ์ ธ์ฌ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@DavidBM ์ ๋ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์
apiary.apib
๋ฌธ์๊ฐ ์๋ ๊ฒ์ ๋๋ค.์ปดํ์ผ๋์ง ์์
apiary-source.apib
- ํฌํจ ๊ธฐ๋ฅ ์ ์ฌ์ฉํ๋ ์ปดํ์ผ๋์ง ์์ ์์ค์ฎ๋ค
๋ค์์ ๊ฐ๋จํ ์คํํ ์ ์์ต๋๋ค.
์ด์
apiary.apib
์blueprint/posts.apib
์ ๋ด์ฉ์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.