Api-blueprint: ๋ชจ๋“  ์š”์ฒญ์— โ€‹โ€‹๋Œ€ํ•œ ๊ณตํ†ต URL ๋งค๊ฐœ๋ณ€์ˆ˜

์— ๋งŒ๋“  2015๋…„ 09์›” 30์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: apiaryio/api-blueprint

์•ˆ๋…•ํ•˜์„ธ์š”,

์šฐ๋ฆฌ 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 ์„น์…˜์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ด๋Ÿฌํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ชจ๋“  ์š”์ฒญ์— โ€‹โ€‹์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

Parameters ๊ฐ€ ์ค‘์•™ ์ง‘์ค‘์‹ data-structures.md ์—์„œ ๊ฐ„๋‹จํ•œ ์ƒ์†์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Šฅ๋ ฅ์—์„œ Attributes ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋„๋ก ํ•˜๋ฉด ์ฒญ์‚ฌ์ง„ ์ฝ”๋“œ ๊ธฐ๋ฐ˜์„ ํ›จ์”ฌ ๋” ์œ ์ง€ ๊ด€๋ฆฌ/DRYํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์•ˆ๋…•ํ•˜์„ธ์š” @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ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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