控制器示例
公开的JSON接口,允许跨域。
import json
from odoo import http
class Demo(http.Controller):
@http.route('/demo/json', type='json', auth="none", csrf=False, method=["POST"], website=True, cors="*")
def json(self, **kw):
return json.dumps({"name": "张三", "date": "2020-09-01"})
如果使用ajax或postman调用接口返回404,则说明你的Odoo未设置默认数据库,你可以修改odoo.conf:
db_name = 数据库名
或者:
dbfilter = 数据库名
如果你的接口需要使用多数据库,或者需要验证用户权限,则可以使用authenticate获取session的cookie,然后再调用其他接口。
请求地址:http://localhost:8079/web/session/authenticate
请求数据:
{
"params": {
"login": "邮箱账号",
"password": "密码",
"db": "数据库名"
}
}
其他参考
https://github.com/yezyilomo/odoo-rest-api/issues/32
https://www.odoo.com/zh_CN/forum/help-1/question/how-to-select-one-database-by-default-9741
https://www.thinbug.com/q/42352046