【问题标题】:Class not found in Google Endpoint [Java]在 Google Endpoint [Java] 中找不到类
【发布时间】:2017-06-14 07:53:40
【问题描述】:

我不清楚 Google Endpoint API 中如何包含类。 我在ofy中正确注册了类,像这样

ObjectifyService.register(Thing.class);
ObjectifyService.register(AnotherThing.class);

在使用 api explorer 时,这一切似乎都有效。

但是当谈到在客户端上使用这些类时,一些类没有导入到我的 api-v1-java.zip 中。如何添加它们?

【问题讨论】:

    标签: java android android-studio google-app-engine google-cloud-endpoints


    【解决方案1】:

    当我在@ApiMethod 中返回新类时,我发现 api-v1-java.zip 中“出现”了一个新类。我仍然不明白它们何时或在哪个事件之后出现,因为一旦我返回这些对象或在 api 资源管理器中测试方法,它们就不会出现,但要过一段时间。任何更具体的答案表示赞赏。

    【讨论】:

      【解决方案2】:

      当您使用 Google 的库生成客户端库时,它会生成一个不依赖于您的 API 的代码的表面。它使用的模型是一组完全独立的类。不过,它们往往具有相似的名称和属性。

      【讨论】:

      • 那么你是否建议创建我自己的类,忽略 api 生成的类?
      • 对于客户端,使用生成的类。对于服务器,使用您编写的类。
      • 问题是我不明白如何生成客户端类。正如另一个答案中所述,我发现的唯一方法是将它们声明为@ApiMethod 的返回类型。我没有返回所有类型,所以客户端库中缺少一些
      • 如果一个类型没有在请求或响应中传递使用,那么它在生成的客户端库中将没有相应的模型类,因为它不是 API 表面的一部分。
      • 好的,所以导出类的唯一方法是在请求或响应中公开它。谢谢!
      猜你喜欢
      • 1970-01-01
      • 2016-02-18
      • 2015-05-31
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 1970-01-01
      相关资源
      最近更新 更多