์๋ ํ์ธ์,
์ฐ๋ฆฌ API๋ ํด๋ผ์ด์ธํธ๊ฐ apiKey, ์๋ช ๋ฐ ํ์์คํฌํ๋ฅผ ๋ชจ๋ ์์ฒญ์ โโ์ฟผ๋ฆฌ ๋ฌธ์์ด๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ทธ๋์ ๋๋ ์ด์ ๊ฐ์ ๋ชจ๋ ๋ฆฌ์์ค ์ ์์์ ์ด ์ฟผ๋ฆฌ ๋ถ๋ถ์ ๋ฐ๋ณตํด์ผ ํฉ๋๋ค.
## Client [/clients/{id}?apiKey={apiKey}&signature={signature}&timestamp={timestamp}]
๊ทธ๋ฐ ๋ค์ ๋งค๊ฐ ๋ณ์
+ Parameters
+ apiKey (required, string, `2961654ce6c3d01c79edc98c8d930d4cc663cda4`)
+ signature (required, string, `213213jjflkjdsfl343k4jjfdsdsf`)
+ timestamp (required, integer, `1443620910`)
์ปฌ๋ ์ ๊ณผ ๋จ์ผ ๋ฆฌ์์ค์์ ์๋ํ๋ ์๋ํฌ์ธํธ๊ฐ ์์ผ๋ฏ๋ก ๋ชจ๋ ๊ทธ๋ฃน์ ๋ํด ์ด๋ฅผ ๋ณต์ฌํ์ฌ ์ ์ด๋ ๋ ๋ฒ ๋ถ์ฌ๋ฃ์ ๋ค์ ์ถ๊ฐ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ URL ํ ํ๋ฆฟ์ ์์ ํด์ผ ํฉ๋๋ค.
๋ฆฌ์์ค ๊ทธ๋ฃน์ด ๋ง์ ๋ ์ด๊ฒ์ ๋งค์ฐ ์ง๋ฃจํ๊ณ ๋ค๋ฅธ ๊ณตํต ํ์ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ถ๊ฐํ๋ฉด ๋ชจ๋ ๊ฒ์ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
์ฒญ์ฌ์ง ๋ฌธ์ ์๋จ์ commonParams ์น์ ์ ์ถ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ์ด๋ฌํ ๋งค๊ฐ๋ณ์๊ฐ ๋ชจ๋ ์์ฒญ์ โโ์ ์ฉ๋ฉ๋๋ค.
์๋ ํ์ธ์ @bazo , ํ์ฌ ์ง์๋์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋์ด์ ๋ํ ์ ์์ด ํ https://github.com/apiaryio/api-blueprint-rfcs/pull/3 (https://github.com/apiaryio/api-blueprint-rfcs/blob/zdne/mson-๋ฅผ parameters/draft/mson-parameters-headers.md#parameters). ๊ณํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
๋ค๋ฅธ ๋งค๊ฐ๋ณ์๋ฅผ ์ฐธ์กฐํ๊ณ ์์ํ ์ ์๋ ์์น์ ๋๋ค.
# Resource [/resource/{client}{?signature,apiKey,timestamp}]
+ Parameters (Authentication)
+ client: foo
# Data Structures
## Authentication (Parameters)
+ apiKey: 2961654ce6c3d01c79edc98c8d930d4cc663cda4
+ signature: 213213jjflkjdsfl343k4jjfdsdsf
+ timestamp: 1443620910 (integer)
๋๋ ๊ทธ๊ฐ ์ฌ๊ธฐ์ ์ข์ ์ง๋ฌธ์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ทธ๋์ ๋๋ ์ด์ ๊ฐ์ ๋ชจ๋ ๋ฆฌ์์ค ์ ์์์ ์ด ์ฟผ๋ฆฌ ๋ถ๋ถ์ ๋ฐ๋ณตํด์ผ ํฉ๋๋ค.
@zdne ์ด๋ป๊ฒ ์๊ฐํ์ธ์? uri ํ ํ๋ฆฟ์ ๋ฐ๋ณตํ๋ ์์ ์ ์ํํ ์ ์์ต๋๊น?
๋๋ ์ ๋ง๋ก ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด๊ณ ์ถ์ ์ ํน์ ๋๋๋ค. ์ด ๋ฌธ์ ๋ 2๊ฐ ์ด์์ ๋ฆฌ์์ค์ ๋ํ ๊ณตํต ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ํ๋ ๊ฒ๊ณผ MSON ์คํ์ผ ๊ตฌ๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ํ ๊ฒ๋ณด๋ค ๋ ์ ์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@zdne ์ด์ ๋ํ ์๊ฒฌ์
์ผ์ข ์ ์ฌ์ฉ์ ์ ์ ์ธ์ฆ ์ฒด๊ณ์์ ์ด๋ฅผ ์ ์ํ ์ ์๋ ๊ฒ์ด ์ด์์ ์ ๋๋ค. https://github.com/apiaryio/api-blueprint-rfcs/blob/kylef/authentication-oauth2/draft/authentication-oauth2.md ์ ์ ์ฌํฉ๋๋ค
์ธ์ฆ ๊ด๋ จ ๋งค๊ฐ๋ณ์๋ผ๋ฉด ๊ด์ฐฎ์ต๋๋ค. page
, per_page
๋ฑ๊ณผ ๊ฐ์ ๋ค๋ฅธ ๋งค๊ฐ๋ณ์์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๋ฆฌ์์ค์ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๊ฒ์
๋๋ค.
์ด๊ฒ๋ ์ฌ์ฉํ ๊ฒ์ ๋๋ค.
@kylef 2015๋ 10์ 1์ผ ๋๊ธ์์ ์ฐธ์กฐํ ๋งํฌ๊ฐ ๋ ์ด์ ์๋ํ์ง ์์ต๋๋ค. ๋ชจ๋ ์๋ํฌ์ธํธ์ OAuth 2 ์ ๋ฌ์ ํ ํฐ์ด ํ์ํ๋ค๊ณ ์ง์ ํ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ ๋ํ ์กฐ์ธ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
Parameters
๊ฐ ์ค์ ์ง์ค์ data-structures.md
์์ ๊ฐ๋จํ ์์์ ์ํํ๋ ๋ฅ๋ ฅ์์ Attributes
์ฒ๋ผ ์๋ํ๋๋ก ํ๋ฉด ์ฒญ์ฌ์ง ์ฝ๋ ๊ธฐ๋ฐ์ ํจ์ฌ ๋ ์ ์ง ๊ด๋ฆฌ/DRYํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
Parameters
๊ฐ ์ค์ ์ง์ค์data-structures.md
์์ ๊ฐ๋จํ ์์์ ์ํํ๋ ๋ฅ๋ ฅ์์Attributes
์ฒ๋ผ ์๋ํ๋๋ก ํ๋ฉด ์ฒญ์ฌ์ง ์ฝ๋ ๊ธฐ๋ฐ์ ํจ์ฌ ๋ ์ ์ง ๊ด๋ฆฌ/DRYํ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.