最近在調研Odoo18,包括它的前后端原理、源碼等。發現官方的開發文檔并不十分實用,比如標題這種簡單的實用需求,竟然浪費了一點時間,特此記錄。
官方文檔:External API — Odoo 18.0 documentation
前提:首先已經成功運行了Odoo,我是源碼運行的。
說明:Odoo提供了json-rpc、xml-rpc兩種,由于xml解析繁雜可讀性差,所以選用json。
1.??鑒權獲取用戶ID
? ? ? ? 可以通過用戶名&密碼來鑒權,也可以通過用戶名&秘鑰來鑒權。
? ? ? ? ?Post請求? header <Content-Type: application/json>? ? ?
? ? ? ? ?入參說明(像是jsonrpc、method、params.method等這類應該都是固定的,重點說下args里的參數):
? ? ? ? ? ? ? ? ? ? ?args第一個參數是數據庫名 (必填);
????????????????? ? ?args第二個是用戶名,也就是你登錄odoo的用戶名(必填);
? ? ? ? ? ? ? ? ? ? ? args第三個參數可以是登錄密碼,也可以是秘鑰(在右上角用戶-我的設置-賬戶安全-API秘鑰這里新增)。
?2.? 調用接口
? ? ? ? 我是啟用了采購模塊,在采購里加了幾條采購訂單用來測試。
? ? ? ? 重點還是args里的幾個參數,第一個數據庫名,第二個鑒權返回的用戶ID,第三個是秘鑰(也可以是密碼),第四個是接口地址(他有很多功能模塊,好像并沒有文檔列出來,我覺得可以查看請求自己分析)。

????????

3.? 總結
? ? ? ? 總感覺它的鑒權有點臃腫,比如第1、2步中都要指定數據庫名和攜帶秘鑰
? ? ? ? 而且它的源碼方式啟動和調試也不太順利,有時間再說下源碼部署和調試的問題。