我的app-endpoint项目有问题。我需要将我的实体对象从android应用程序发送到端点,但我真的找不到它如何正确地执行它。如果重要的话,我的实体对象使用Objectify。
首先尝试
当我尝试将我的实体对象作为@ApiMethod的参数传递时,我收到了关于
的编译错误Error:Gradle: Execution failed for task ':backend:appengineEndpointsGetClientLibs'.
> There was an error running endpoints command get-client-lib: Parameterized type com.package.NestedData<com.package.AnotherData> not supported.
所以我不能使用泛型类型。
第二次尝试
我也尝试将此对象作为Json对象(字符串参数)发送,但我得到了
GoogleJsonResponseException: 413 FULL head
好的,太长的字符串......是否有一种很好的发送方式?
第三次尝试
我尝试过的最后一件事是序列化对象并发送一个字节数组。它也不适合我。
Blob参数类型。它不会编译。错误:
错误:Gradle:任务执行失败':后端:appengineEndpointsGetClientLibs'。 运行端点命令get-client-lib:400 Bad Request时出错 {“error”:{“message”:“错误请求”,“代码”:400,“错误”:[{“message”:“api exception”,“debug_info”:“无法解码JSON模式:{u' parameterName':u'resource'}“}]}}
结论
我不知道该怎么做。请帮我弄清楚。谢谢!
示例代码
实体。这是示例结构,但与我的真实对象非常相似。它们必须看起来像这样,因为它们是从另一个json(通过GSON)解析的,所以我无法改变结构。
@Entity
public class Example {
@Id long id;
String name;
NestedData<AnotherData> data;
}
@Entity
class AnotherData {
@Id long id;
String name;
int value;
}
@Entity
class NestedData<T> {
List<T> list;
}
答案 0 :(得分:0)
您需要使用valid parameter type。此问题似乎与this one重复,巧合地显示用户尝试使用com.google.appengine.api.datastore.Blob
,就像您一样。