带有 Odoo 后端的 Flutter 应用程序

问题描述 投票:0回答:1

我想开发一个带有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);

    }

我正在寻找社区的解决方案或建议。

flutter dart odoo flutter-dependencies
1个回答
0
投票

要实现这一点,例如:域名/api/身份验证,迄今为止,唯一的解决方案是在 Odoo 上设计自己的模块来满足您的规范。因此,您可以在 Odoo 上为您的项目创建 RestApi。我发现这个存储库可能不是最新的 odoo-rest-api,但将为您提供如何设计所有这些的一个很好的起点。祝你好运,并随时通知我们。

© www.soinside.com 2019 - 2024. All rights reserved.