Home > JSON, JSON-RPC, Programming > Pengenalan JSON-RPC part 1

Pengenalan JSON-RPC part 1

JSON Logo

Waduh, makhluk apa lagi ini JSON-RPC??? JSON-RPC adalah format komunikasi data yang sangat ringan dan simple.

Jika kita membuat aplikasi client-server, entah itu aplikasi desktop maupun aplikasi berbasis web (AJAX), yang biasanya servernya menggunakan middleware (PHP, Java EE, Python, RoR, dst), hal yang paling sering menjadi pertanyaan adalah “Untuk komunikasi datanya pakai apa?”.

Jawaban yang sering kita dengar biasanya HTTP POST/GET dengan format data berupa plain text, CSV, XML, maupun JSON. Namun komunikasi data ini tidak memiliki standar, dan sangat “sesuka gw”.

Kalau sedang beruntung (atau sial yak?) kita mungkin akan mendengar komunikasi data yang lebih canggih seperti SOAP, XML-RPC, AMF, Hessian, atau yang lagi hype saat ini, REST. Namun komunikasi data ini cukup kompleks untuk diterapkan, terkadang hanya berjalan di platform tertentu (AMF, Hessian), terkadang ukuran transfer datanya sangat besar (SOAP).

JSON-RPC umumnya menggunakan HTTP POST untuk mengirimkan request ke server. Pada request tersebut sudah ada informasi mengenai nama method yang akan dipanggil beserta parameter-parameter yang dibutuhkan. Semua dalam bentuk JSON dan sudah terstruktur sesuai dengan spesifikasi JSON-RPC.

JSON-RPC merupakan Remote Procedure Call (RPC), dimana client akan “memanggil” fungsi/method yang ada di Server. Misalnya server memiliki method findPersonByName, membutuhkan parameter berupa string name, dan akan mengembalikan Array dari object Person yang berisi properti name dan age.

Contoh request JSON-RPC, dikirimkan menggunakan HTTP POST:

{
    "id":"123456abcd",
    "jsonrpc":"2.0",
    "method":"findPersonByName",
    "params":["Herloct"]
}

Pada request tersebut dapat kita artikan bahwa client ingin memanggil method bernama findPersonById, dengan parameter string berupa “Herloct”.

Contoh response JSON-RPC, apabila berhasil:

{
    "id":"123456abcd",
    "jsonrpc":"2.0",
    "error":null,
    "result":[
        {
            "name":"Herloct",
            "age":8,
        }, {
            "name":"Captain Herloct",
            "age":56,
        }, {
            "name":"Herloct HENT",
            "age":23,
        }
    ]
}

Pada response tersebut dapat kita lihat jika server mengirimkan array object yang memiliki properti name dan age.

Contoh response JSON-RPC, apabila terdapat error/exception:

{
    "id":"123456abcd",
    "jsonrpc":"2.0",
    "result":null,
    "error":{
        "code":-101,
        "message":"Cannot find Person with name 'Herloct'."
    }
}

Pada response tersebut juga dapat kita lihat jika server mengirimkan pesan error/exception dengan kode error 101, dan dengan message “Cannot find Person with name ‘Herloct’.”.

Bagaimana? Sangat Simple bukan??? Simple namun semua informasi tetap terjaga, terstruktur, dan sesuai dengan standar. Format JSON juga terkenal ringan dan sudah tersedia hampir di semua bahasa pemrogramman.

Untuk Part 2, kita akan coba membahas lebih dalam lagi Spesifikasi dari JSON-RPC. :D

Sumber :

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.