JSON-RPC merupakan sebuah protokol yang memungkinan untuk melakukan pemanggilan method secara remote ke program lain yang berada di alamat yang berbeda dengan menggunakan JSON sebagai pembungkus pesannya.
JSON-RPC ini memliki 2 versi, yaitu versi 1.0 dan 2.0. Yang membedakan antara keduanya adalah pada pengaturan format pesan saat pertukaran data.
Type data yang ditransferkan dalam bentuk sebuah object yang di serialisasi dengan menggunakan json. Permintaan bisa langsung ditujukan kepada method yang telah di sediakan oleh server. Dan dalam sebuah pengiriman paket tersebut memiliki 3 properti.
Pesan pengiriman:
- Method - isi data ini bertujuan untuk menentukan method mana yang diminta oleh client untuk di jalankan di server
- Params - merupakan sebuah object array yang berisi parameter dan value untuk kebutuhan method yang akan di panggil di server
- Id - berisi type sembarang yang bertujuan untuk pengecheckan apakah yang request nanti sama dengan yang di kembalikan.
- Result - merupakan data keluaran dari method yang di panggil di server.
- Error - merupakan pengembilan dari server jika terjadi error saat menjalankan service rpc. Jika tidak ada, maka akan dikembalikan null
- Id - berisi data dari id request yang di minta oleh requestor
--> { "method": "echo", "params": ["Hello JSON-RPC"], "id": 1}
<-- { "result": "Hello JSON-RPC", "error": null, "id": 1}
<-- { "result": "Hello JSON-RPC", "error": null, "id": 1}
Sedangkan untuk contoh json-rpc v 2.0 adalah sebagai berikut:
--> {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}
<-- {"jsonrpc": "2.0", "result": 19, "id": 1}
<-- {"jsonrpc": "2.0", "result": 19, "id": 1}
Dan dibawah ini merupakan contoh untuk pesan dengan menggunakan parameter untuk permintaan service:
--> {"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3}
<-- {"jsonrpc": "2.0", "result": 19, "id": 3}
<-- {"jsonrpc": "2.0", "result": 19, "id": 3}
Contoh jika terjadi tidak ada method yang dipanggil
-> {"jsonrpc": "2.0", "method": "foobar", "id": 10}
<-- {"jsonrpc": "2.0", "error": {"code": -32601, "message": "Procedure not found."}, "id": 10}
<-- {"jsonrpc": "2.0", "error": {"code": -32601, "message": "Procedure not found."}, "id": 10}
Contoh service salah format json:
--> {"jsonrpc": "2.0", "method": "foobar", "params": "bar", "baz"]
<-- {"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}
<-- {"jsonrpc": "2.0", "error": {"code": -32700, "message": "Parse error"}, "id": null}
Contoh untuk kesalahan dalam service json-rpc
--> [1,2,3]
<-- {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid JSON-RPC."}, "id": null}
Untuk lebih detilnya, silahkan kunjungi json-rpc.
*Semoga Bermanfaat*
0 Comment to "Web Service - Json-RPC"
Post a Comment