odoo原生支持前后端分离,通过json-rpc接口实现通信;可自定义api路由暴露业务接口,并用postman或odoo-rpc-js对接前端。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Qoder不是标准技术名词,当前主流生态中无名为Qoder的成熟开发框架或平台。你实际想问的是Odoo如何实现前后端分离接口开发——这是企业级ERP系统中真实存在的高频需求,尤其在对接小程序、Vue前端、Postman调试或第三方系统时必须打通这一链路。
确认Odoo是否支持前后端分离
Odoo原生架构已默认采用前后端分离模式:Web前端完全通过JSON-RPC接口与后端通信,不依赖服务端模板渲染。所有官方Web客户端(如后台管理界面)均基于OWL框架调用/web/session/authenticate、/web/dataset/call_kw等标准RPC端点,这本身就是前后端解耦的实证。
若你在源码中看到odoo.http里定义了@jsonrpc装饰器的路由,或发现models目录下模型方法被@api.model或@api.depends修饰但未绑定视图逻辑,说明该模块已具备API服务能力。
暴露自定义业务接口(JSON-RPC方式)
方法一:复用Odoo内置JSON-RPC入口
第一步:在Python模型中定义公开方法,添加@api.model装饰器并确保方法名以action_或get_开头(如get_customer_list);
第二步:在控制器中继承http.Controller,用@http.route('/my_api/get_customers', type='json', auth='user')声明路由;
第三步:在路由函数内调用模型方法,返回字典格式数据(不要返回records对象,需用.read()或.mapped()转为纯Python结构);
【auth='user'表示仅登录用户可访问,若需匿名调用必须设为auth='public'且在方法内手动校验权限,否则会500报错】
用Postman调试Odoo接口
先获取session ID:向http://localhost:8069/web/session/authenticate发送POST请求,Body选raw→JSON,填入:
{"jsonrpc": "2.0", "method": "call", "params": {"db": "your_db_name", "login": "admin", "password": "123"} }
从响应中提取result.session_id,粘贴到下一个请求的Headers里,Key为X-Openerp-Session-Id;
Qoder Linux版是由阿里推出的智能体自主开发工作台,支持开发者通过定义需求即可让Agent团队“自动驾驶”,自主完成代码执行、验证与交付的全流程。其全新的Quest独立视窗集成了任务管理与状态追踪能力,并支持跨项目多任务并行处理,显著提升开发效率。此外,Qoder还提供专家团模式与团队级知识引擎,适配复杂开发场景。
接着调用业务接口,比如http://localhost:8069/web/dataset/call_kw/res.partner/read,Body传参需严格遵循Odoo RPC格式,含model、method、args、kwargs四字段;
这一步操作起来很简单,直接把文件拖进去就行。但注意:args数组第一项必须是记录ID列表,空列表会触发ValueError异常。
对接Uniapp或Vue前端
方法一:使用官方odoo-rpc-js库
安装:npm install odoo-rpc-js;
初始化实例时传入Odoo服务地址、数据库名、用户名和密码;
调用odoo.connect()建立会话,成功后即可用odoo.searchRead('res.partner', [...])发起查询;
方法二:手写fetch封装
构造JSON-RPC请求体,method字段填call,params里嵌套service(如object)、method(如execute_kw)、args(含db、uid、pwd、model、action、ids等);
务必在Headers中设置Content-Type: application/json,否则Odoo后端拒绝解析;
【Odoo 17+默认关闭XML-RPC,只开放JSON-RPC,若启用了XML-RPC请立即禁用,存在未授权访问风险】










