控制器示例

公开的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