json rpc 2_0

23
JSON-RPC 2.0 aodag

Upload: atsushi-odagiri

Post on 09-Jun-2015

4.680 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Json rpc 2_0

JSON-RPC 2.0

aodag

Page 2: Json rpc 2_0

おまえだれよ?

Page 3: Json rpc 2_0

Ian の同僚ビープラウド勤務

Page 4: Json rpc 2_0

(´  ・ ω ・  `)

シュークリームなやつです

Page 5: Json rpc 2_0

twitter上では癒し系やってます

Page 6: Json rpc 2_0

Pythonistaに幸あれ ヽ(≧▽≦)ノ

@aodag

Page 7: Json rpc 2_0

今日はJSON-RPCの話します

Page 8: Json rpc 2_0

Restful

GET, POST, PUT, DELETEDBのCRUDに一致

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

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

Page 9: Json rpc 2_0

Restful

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

多分できるんだろうけど....

Page 10: Json rpc 2_0

(´  > ω < )めんどくさいねん!

Page 11: Json rpc 2_0

RPC (Remote Procedure Call)

全部POSTURLは1つ呼び出す処理は、POSTデータで指定

Page 12: Json rpc 2_0

RPCなもの

XML-RPC Python標準ライブラリに入ってる

JSON-PRC JSONパーサーは標準ライブラリに入ってる

AMF PyAMFとかあるみたい

Message Pack RPC 実装があるって小耳に挟みました

Page 13: Json rpc 2_0

なぜRPCを使おうと思うか

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

Page 14: Json rpc 2_0

設計が楽

URLやHTTP Methodについて考えなくていい

Page 15: Json rpc 2_0

実装が楽

実装するのは関数だけ

Page 16: Json rpc 2_0

テストも楽

普通の関数だからね!

Page 17: Json rpc 2_0

def hoge(arg1, arg2): return dict(result=arg1+arg2)

Page 18: Json rpc 2_0

JSON-RPC

JSON-RPCのリクエスト

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

Page 19: Json rpc 2_0

JSON-RPC2

JSON-RPC2のリクエスト

{ version: "json-rpc2", method:"hoge", params:["spam", "egg"], id: "hoge-1"}

Page 20: Json rpc 2_0

JSONRPC2のキーワード引数

JSON-RPC2のリクエスト

{ version: "json-rpc2", method:"hoge", params:{arg1: "spam", arg2: "egg"}, id: "hoge-1"}

Page 21: Json rpc 2_0

JSON-RPC2のバッチリクエスト

[ { version: "json-rpc2", method:"hoge", params:["spam", "egg"], id: "hoge-1" }, { version: "json-rpc2", method:"fuga", params:["spam", "spam"], id: "fuga-1" },]

Page 22: Json rpc 2_0

jsonrpc2 パッケージ

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

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

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

次にやろうとしてることJS側の呼び出しインターフェイスを自動生成

Page 23: Json rpc 2_0

ご清聴ありがとうございまし

たヽ(≧▽≦)ノ