我想开发一个带有odoo后端的应用程序。我之前曾研究过其余的 api,其中有 get 。 post 、 put 方法,大多数情况下我们使用 http 或 dio 包来集成 api。
但是在odoo中我们有rpc调用,我已经了解了odoo_rpc包,它也是odoo和flutter之间的连接和身份验证。
我的问题是:对于开发像电子商务这样的应用程序,在 flutter 中一次又一次调用 rpc 方法是一种很好的做法。我以前从未使用过odoo,请建议我一个解决方案。我如何获得像http中的端点:例如:域名/api/authentication
参考代码:
try {
final session = await client.authenticate('database_name', _username, _password);
final res = await client.callKw({
'model': 'res.partner',
'method': 'search_read',
'args': [],
'kwargs': {
'context': {'bin_size': true},
'domain': [],
'fields': [ 'name', 'email'],
'limit': 80,
}});
log('Installed modules: \n' + res.toString());
print('session$session');
final response = await client.checkSession();
print('response$response');
Future<void> printSessionResult() async {
var sessionResult = await client.checkSession();
print('Session Result: $sessionResult');
}
printSessionResult();
void sessionChanged(OdooSession sessionId) async {
print('We got new session ID: ${sessionId.id}');
// write to persistent storage
}
setState(() {
isLoading = true;
});
dataList = List<Map<String, dynamic>>.from(res);
// for (var data in dataList) {
// print('{id: ${data['id']}, name: ${data['name']}, email: ${data['email']}}');
// }
log(dataList.toString());
Provider.of<DataProvider>(context, listen: false).setDataList(dataList);
Navigator.pushNamed(context, '/get_data');
} catch (e) {
print('Exception ${e.toString()}');
setState(() {
isLoading = false;
});
// client.close();
// exit(-1);
}
我正在寻找社区的解决方案或建议。
要实现这一点,例如:域名/api/身份验证,迄今为止,唯一的解决方案是在 Odoo 上设计自己的模块来满足您的规范。因此,您可以在 Odoo 上为您的项目创建 RestApi。我发现这个存储库可能不是最新的 odoo-rest-api,但将为您提供如何设计所有这些的一个很好的起点。祝你好运,并随时通知我们。