Odoo API Menggunakan JSON-RPC
Pada dasarnya, Odoo telah menyediakan XML-RPC untuk berinteraksi dengan aplikasi eksternal. Selain XML-RPC, Odoo juga menyediakan opsi lain yaitu JSON-RPC. Opsi ini mungkin kurang populer dibandingkan dengan XML-RPC, karena Odoo tidak mendokumentasikannya secara detail. Maka dari itu, artikel ini akan membahas bagaimana implementasi API menggunakan JSON-RPC di Odoo.
Pada kasus pertama, kita akan membuat endpoint API untuk search data purchase order, dengan po_number sebagai parameter pencariannya. path yang diregistrasi adalah /purchase/search.
Buat file purchase_api.py dan letakkan di folder controller. Disini kita membuat buat modul baru bernama api_jsonrpc.
Pada endpoint API ini, kita akan memberikan beberapa data purchase order kepada client seperti nomor PO, nama vendor, kode produk, harga produk dan kuantitas produk. Script-nya sebagai berikut:
Mari kita coba hit endpoint API tersebut dengan aplikasi Postman seperti berikut:
Maka kita akan mendapat response seperti berikut:
Sebagai catatan, penggunaan sudo() diperlukan karena kita tidak mendefinisikan parameter auth pada route. Sehingga pihak manapun yang mengetahui endpoint tersebut dapat mengakses fungsinya, dalam hal ini fungsi search.
Pada kasus berikutnya, kita akan membuat endpoint yang digunakan untuk create data purchase order. Parameter yang dibutuhkan untuk membuat purchase order adalah nama vendor, kode produk, harga produk, kuantitas produk. path yang diregistrasi adalah /purchase/create. Berikut script-nya:
Disini parameter auth dideskripsikan dengan ‘api_key’. Fungsinya untuk memberikan hak akses hanya kepada pemilik key. Untuk itu kita perlu menginstal add-ons tambahan dari OCA yaitu auth_api_key. Jangan lupa untuk menambahkan modul tersebut pada parameter depends di file __manifest__.py.
Setelah itu kita perlu membuat API key pada menu setting -> technical -> auth api key.
Mari kita coba hit endpoint tersebut. Pada headers tambahkan parameter api_key.
Maka kita akan mendapat response sebagai berikut: