第一章 Odoo与小程序开发
我们知道小程序实际上就是运行在微信应用中的前端程序,与其他前端并无实质上的太大区别。只不过由于腾讯封闭生态导致的小程序开发通常会有很多坑,因此我们在这里进行总结,以便在今后的小程序开发中能够快速开发和迭代。
Odoo提供接口的方式
小程序通常使用HTTP请求与后端进行通信。因此,Odoo对外提供的接口也应当使用HTTP协议。Odoo原生的XML-RPC的方式不太适合小程序,JSON-RPC倒是原生支持,但是需要小程序端做一些适配工作。
另外的一种常见的方式,就是后端在Controller中定义接口,然后小程序根据接口文档进行开发调用。
接口定义规范
FAQ
- 在POSTMAN或APIFOX中调用正常,到小程序中调用则失败,并提示:
400 Bad Request: <function WxapiAuth.wxapi_login at 0x7f872f98e8b0>, /wxapi/login: Function declared as capable of handling request of type 'json_raw' but called with a request of type 'http'
使用JSON格式进行提交时,请求头和请求体数据均规范,但是Odoo却提示400错误。原因是,小程序在请求头中添加了Refer: https://servicewechat.com/wx....../0/page-frame.html, 导致了Odoo解析数据错误。
解决方案: 在反向代理中将Refer替换掉。