JSON-RPC คืออะไร
JSON-RPC เป็นมาตรฐานโปรโตคอลหนึ่งสำหรับใช้รับส่งข้อมูลผ่านเครือข่ายบนคอมพิวเตอร์ โดยนำ JSON มารวมกับ RPC (Remote procedure call) ปัจจุบันมาตรฐานล่าสุดของ JSON-RPC คือ JSON-RPC 2.0
โดยมีการรับส่งข้อมูลดังนี้
--> data sent to Server
<-- data sent to Client
อ่านรายละเอียด JSON-RPC เพื่มเติมได้ที่ www.jsonrpc.org
ในการเขียนโปรแกรมภาษา Python ผมขอแนะนำโมดูล jsonrpclib ครับ
โมดูล jsonrpclib เป็นโมดูลสำหรับใช้สร้าง JSON-RPC Server และ Client ในภาษา Python เนื่องจากโมดูล jsonrpclib ไม่ได้รับการพัฒนาต่อมานาน จึงได้มีคน fork โค้ดมาพัฒนาต่อในชื่อใหม่ว่า jsonrpclib-pelix ครับ
- รองรับทั้ง JSON-RPC 1.0 และ JSON-RPC 2.0
- ใช้ Apache License, Version 2.0
- รองรับทั้ง Python 2 และ Python 3
สามารถติดตั้งได้โดยใช้คำสั่ง pip:
$ pip install jsonrpclib-pelix
ตัวอย่างการใช้งาน
สร้าง JSON-RPC Server
[python]
>>> from jsonrpclib.SimpleJSONRPCServer import SimpleJSONRPCServer
>>>
>>> server = SimpleJSONRPCServer(('localhost', 8080)) # ที่ตั้ง Server และ Port
>>> server.register_function(pow)
>>> server.register_function(lambda x,y: x+y, 'add')
>>> server.register_function(lambda x: x, 'ping')
>>> server.serve_forever()
[/python]
โค้ดส่วน Client
[python]
>>> import jsonrpclib
>>> server = jsonrpclib.ServerProxy('http://localhost:8080')
>>> server.add(5,6)
11
>>> server.ping(6)
6
[/python]
ข้อมูลที่รับส่งผ่าน JSON-RPC
เนื่องจากโค้ดข้างบนเป็น JSON-RPC 2.0 จึงมีการรับส่งข้อมูลดังนี้
--> {"jsonrpc": "2.0", "add": [5,6], "id": 1}
<-- {"jsonrpc": "2.0", "result": 11, "id": 1}
--> {"jsonrpc": "2.0", "ping": 6, "id": 2}
<-- {"jsonrpc": "2.0", "result": 6, "id": 2}
อ่านเอกสารเพิ่มเติมได้ที่ https://github.com/tcalmant/jsonrpclib
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)