Api-blueprint: JSON-RPC에 λŒ€ν•œ URI μ˜€λ²„λ‘œλ”© 지원

에 λ§Œλ“  2014λ…„ 04μ›” 27일  Β·  11μ½”λ©˜νŠΈ  Β·  좜처: apiaryio/api-blueprint

JSON-RPC 및 기타 RPC μœ μ‚¬ APIμ—λŠ” μ’…μ’… 본문에 μ •μ˜λœ λ©”μ„œλ“œκ°€ μžˆλŠ” 단일 URI만 μžˆμŠ΅λ‹ˆλ‹€. νŽΈμ§‘κΈ°κ°€ κ²½κ³ λ₯Ό μ œκ³΅ν•˜μ§€ μ•Šκ³  API μ½˜μ†”μ΄ μ μ ˆν•œ μ˜€λ²„λ‘œλ“œλœ κ²°κ³Όλ₯Ό λ°˜ν™˜ν•˜λ„λ‘ μ΄λŸ¬ν•œ λ¦¬μ†ŒμŠ€μ— λŒ€ν•΄ μ—¬λŸ¬ μž‘μ—…μ„ μ •μ˜ν•  수 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

Question

λͺ¨λ“  11 λŒ“κΈ€

apiary.io둜 μ΄λ™ν•©λ‹ˆλ‹€.

@rodriguise 이 λ¬Έμ œμ— λŒ€ν•œ μ •λ³΄λŠ” μ–΄λ””μ—μ„œ 찾을 수 μžˆμŠ΅λ‹ˆκΉŒ? 저도 같은 μƒκ°μž…λ‹ˆλ‹€. RPC와 같은 APIλ₯Ό μ§€μ›ν•˜λ©΄ 쒋은 κΈ°λŠ₯이 될 κ²ƒμž…λ‹ˆλ‹€.

@rodriguise 저도 이 κΈ°λŠ₯에 맀우 관심이 μžˆμŠ΅λ‹ˆλ‹€. 이 λ¬Έμ œμ— λŒ€ν•΄ μ–΄λ””μ—μ„œ 배울 수 μžˆμŠ΅λ‹ˆκΉŒ?

@adammbalogh @SvyatoslavVasiliev μ‚¬μš© 사둀λ₯Ό μ’€ 더 μžμ„Ένžˆ μ„€λͺ…ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@pksunkara ν™•μ‹€ν•©λ‹ˆλ‹€.
JSON-RPC 2.0 사양 에 따라 μ„€κ³„λœ APIκ°€ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

POST http://somehost.com/rpc_api

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "entity.get",
  "params": {
    "filter": {
      "filters": [
        {
          "field": "name",
          "operator": "eq",
          "value": "Bob"
        },
        {
          "field": "age",
          "operator": "eq",
          "value": 25
        }
      ],
      "condition": "and"
    }
  }
}

μ΄λŸ¬ν•œ APIλŠ” "method" λ§€κ°œλ³€μˆ˜μ˜ 본문에 λ©”μ„œλ“œ 이름이 ν¬ν•¨λœ λ©”μ„œλ“œ 그룹에 λŒ€ν•œ URL이 ν•˜λ‚˜λ§Œ μžˆμŠ΅λ‹ˆλ‹€.
ν˜„μž¬ Blueprint κ΅¬ν˜„μ—μ„œλŠ” 경둜 쀑심 μ–Έμ–΄ ꡬ쑰둜 인해 μ΄λŸ¬ν•œ APIλ₯Ό μ„€λͺ…ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @pksunkara , 이것에 λŒ€ν•œ μ†Œμ‹μ΄ μžˆμŠ΅λ‹ˆκΉŒ?
양봉μž₯ λŒ€μ‹  λ‹€λ₯Έ λ Œλ”λ§ 도ꡬ(예: aglio)λ₯Ό μ‚¬μš©ν•΄ λ³΄μ•˜κ³  양봉μž₯κ³Ό 달리 λ¬Έμ„œλ₯Ό μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ΄λŸ¬ν•œ λ„κ΅¬λŠ” 속성과 같은 일뢀 κΈ°λŠ₯을 λ³„λ„μ˜ μ„Ήμ…˜μœΌλ‘œ λ Œλ”λ§ν•˜λŠ” 것을 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λ‚΄ 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 도움이 λœλ‹€λ©΄ 맀우 쒋을 κ²ƒμž…λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @SvyatoslavVasiliev λ”°λΌμ„œ 이것을 μ˜¬λ°”λ₯΄κ²Œ 읽으면 JSON RPC에 λŒ€ν•œ 지원이 https://github.com/apiaryio/api-blueprint/issues/289에 속 ν•˜μ§€λ§Œ 기술적으둜 ν”„λ‘œν† μ½œμ€ μ—¬μ „νžˆ ​​HTTPμž…λ‹ˆλ‹€.

URI 및 HTTP λ©”μ„œλ“œμ—μ„œ λ¦¬μ†ŒμŠ€ 및 μž‘μ—… μ •μ˜λ₯Ό λΆ„λ¦¬ν•˜λ©΄ 이 κ²½μš°μ—λ„ 도움이 λ©λ‹ˆλ‹€.

이게 말이 λ˜λ‚˜μš”? μžμ„Έν•œ λ‚΄μš©μ€ #289λ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

μ•ˆλ…•ν•˜μ„Έμš” @zdneλ‹˜ ,
#289λ₯Ό μ΄ν•΄ν•˜λ €κ³  λ…Έλ ₯ν–ˆμ§€λ§Œ μ™„μ „νžˆ 이해할 수 μ—†μŠ΅λ‹ˆλ‹€.
λ‚΄ APIλŠ” JSON λ³Έλ¬Έκ³Ό ν•¨κ»˜ HTTPλ₯Ό μ „μ†‘μœΌλ‘œ μ‚¬μš©ν•˜μ§€λ§Œ URL이 ν•˜λ‚˜λ§Œ 있고 HTTP POST만 μ‚¬μš©ν•©λ‹ˆλ‹€. "method" λ§€κ°œλ³€μˆ˜μ— ν¬ν•¨λœ λ¦¬μ†ŒμŠ€ 및 λ©”μ„œλ“œμ— λŒ€ν•œ λͺ¨λ“  정보λ₯Ό 본문에 ν¬ν•¨ν•©λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ μ—”ν„°ν‹°λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
{ "jsonrpc": "2.0", "id": 1, "method": "entity.get", "params": { "filter": { "filters": [ { "field": "name", "operator": "eq", "value": "Bob" }, { "field": "age", "operator": "eq", "value": 25 } ], "condition": "and" } } }

μ—”ν‹°ν‹° μ‚­μ œ:
{ "jsonrpc": "2.0", "id": 1, "method": "entity.delete", "params": { "id": "123" } }

HTTP POST http://myservice.com/rpcapi 라고 ν•˜λŠ” 두 가지 방법

μ§€κΈˆκΉŒμ§€ JSON-RPC APIλ₯Ό λ¬Έμ„œν™”ν•˜λŠ” ν˜„λŒ€μ μ΄κ³  κΈ°λŠ₯적인 방법을 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€(ν…ŒμŠ€νŠΈ 생성에도 μ‚¬μš©ν•  수 있음). 제 희망은 API Blueprintμ˜€μ§€λ§Œ μ‹€μ œλ‘œ μ§€μ›λ˜μ§€ μ•ŠλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•œ API Blueprint의 ν–₯ν›„ κ³„νšμ„ μ•Œκ³  μžˆκ±°λ‚˜ 이λ₯Ό μ§€μ›ν•˜λŠ” λ‹€λ₯Έ ꡬ쑰/도ꡬ에 λŒ€ν•œ μ œμ•ˆμ΄ μžˆμŠ΅λ‹ˆκΉŒ?

@Dynom λͺ‡ 가지 쑰언을 λ“œλ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.
API 청사진에 λŒ€ν•΄ Aglio λ Œλ”λ§μ„ μ‹œλ„ν•  수 μžˆμ§€λ§Œ 속성 μ„Ήμ…˜μ„ λ Œλ”λ§ν•˜μ§€ μ•Šμ§€λ§Œ λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό μ˜¬λ°”λ₯΄κ²Œ ν‘œμ‹œν•©λ‹ˆλ‹€.
또 λ‹€λ₯Έ λ„κ΅¬λŠ” API Doc μž…λ‹ˆλ‹€. ν˜„μž¬ ν…ŒμŠ€νŠΈ 쀑이며 μ ν•©ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.

@SvyatoslavVasiliev 감사

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰