错误:Model :: findById需要参数id loopback android

时间:2018-05-08 10:22:02

标签: java android postgresql strongloop loopback

我是环回的新手,我遇到了问题。 我创建并管理了一个Postgres数据库,一切似乎都运行正常。数据库由json中的引导文件创建,包含所需的值。

但是当我想执行findById方法时,我遇到了以下问题:

  

请求GET / api / members / 1的错误?id = 1:错误:Model :: findById需要id参数

模型定义是:

{
    "name": "Member",
    "strict": true,
    "idInjection": true,
    "base": "User",
    "options": {
       "validateUpsert": true
    },
    "properties": {
    "firstname": {
    "type": "string",
    "required": true
    },
    "lastname": {
    "type": "string",
    "required": true
    },
    "questiontype": {
    "type": "number",
    "required": true
    },
    "questionanswer": {
    "type": "string",
    "required": true
    }
    },
    "validations": [],
    "relations": {
    "issues": {
       "type": "hasMany",
       "model": "Issue",
       "foreignKey": "authorId"
    }

我从LoginActivity调用findById:

 connect_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            RestAdapter restAdapter = new RestAdapter(getApplicationContext(), "http://" + MY_IP + ":3000/api");
            MemberRepository memberRepo = restAdapter.createRepository(MemberRepository.class);
            memberRepo.findById(1, new ObjectCallback<Member>() {
                @Override
                public void onSuccess(Member member) {
                    System.out.println("Found !");
                }

                public void onError(Throwable t) {
                    System.out.println("Fail");
                }
            });
        }
    });

问题是当我在localhost:3000 / explorer上从loopback执行findById方法时,它会返回正确的结果并且根本没有错误。

只有在Android上才会出现此问题。我使用loopback提供的strongloop库,它使用包含login,logout,find,..方法的UserRepository类。所以它们不应该是来自方法本身的任何错误。这导致我到实际问题,我真的无法弄清楚它是从哪里来的?

2 个答案:

答案 0 :(得分:1)

因此,经过几天的尝试,我只是放弃了strongloop并尝试使用Retrofit2。事实证明一切都很完美。

再次感谢@Signo为您服务!相当令人沮丧的结局,但我认为正如你所说的那样,可能没有提供正确的请求,而且我认为它已经完全没有了,我刚刚完成了这个事实。

答案 1 :(得分:0)

我会尝试提供一些建议,让我知道是否有任何工作,以便我可以编辑答案:

  • 从您的错误:/api/members/1?id=1是否正确,它在路径中使用members而不是membermembers来自thisEnglish.plural(className);;
  • 如果您有权访问Strongloop库,请尝试在getVerbForMethod hereRestContract的return语句中添加断点,并检查您的调用是否返回{{1 }};
  • 您的answer here代表同一错误,但是通过js调用生成,他们建议您修改对象GET;

ps:来自Strongloop website它声明Android库不再被主动维护了