JSON-RPC 2.0

    aodag
おまえだれよ?
Ian の同僚
ビープラウド勤務
(´  ・ ω ・  `)
シュークリームなやつです
twitter上では
癒し系やってます
Pythonistaに幸あれ
    ヽ(≧▽≦)ノ

    @aodag
今日は
JSON-RPCの話します
Restful

GET, POST, PUT, DELETE
DBのCRUDに一致

URLがリソース
良いURL設計が必須

すべての設計を、リソースに対するCRUD操作
Restful

すべての設計を、リソースに対するCRUD操作に落とし込む

多分できるんだろうけど....
(´  > ω < )めんどくさいねん!
RPC (Remote Procedure Call)

  全部POST
  URLは1つ
  呼び出す処理は、POSTデータで指
  定
RPCなもの

 XML-RPC
   Python標準ライブラリに入ってる
 JSON-PRC
   JSONパーサーは標準ライブラリに
   入ってる
 AMF
   PyAMFとかあるみたい
 Message Pack RPC
   実装があるって小耳に挟みました
なぜRPCを使おうと思うか


 設計が楽
 変更も楽
 テストも楽
設計が楽


URLやHTTP Methodについて
    考えなくていい
実装が楽


 実装するのは関数だけ
テストも楽


 普通の関数だからね!
def hoge(arg1, arg2):
  return dict(result=arg1+arg2)
JSON-RPC

JSON-RPCのリクエスト

{
    method:"hoge",
    params:["spam", "egg"],
    id: "hoge-1"
}
JSON-RPC2

JSON-RPC2のリクエスト

{
    version: "json-rpc2",
    method:"hoge",
    params:["spam", "egg"],
    id: "hoge-1"
}
JSONRPC2のキーワード引数

JSON-RPC2のリクエスト

{
    version: "json-rpc2",
    method:"hoge",
    params:{arg1: "spam", arg2: "egg"},
    id: "hoge-1"
}
JSON-RPC2のバッチリクエスト

[
    {
      version: "json-rpc2",
      method:"hoge",
      params:["spam", "egg"],
      id: "hoge-1"
    },
    {
      version: "json-rpc2",
      method:"fuga",
      params:["spam", "spam"],
      id: "fuga-1"
    },
]
jsonrpc2 パッケージ

http://pypi.python.org/pypi/jsonrpc2

JSON-RPC2で、WSGIアプリケーション作るためのもの


今 0.3 
JSON-RPC2の機能はサポートした
はず

次にやろうとしてること
JS側の呼び出しインターフェイスを自動生成
ご清聴
ありがとうございまし
     た
  ヽ(≧▽≦)ノ

Json rpc 2_0