Odoo Http鉴权+调用后端接口
最近在调研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步中都要指定数据库名和携带秘钥
而且它的源码方式启动和调试也不太顺利,有时间再说下源码部署和调试的问题。