我一直在搜索这个问题,我很确定我在关键字中使用了错误的术语。所以这是一个展示我想做的事情的例子:
我有一个Entity
定义为
@Entity
public class DeviceRecord {
@Id private String id;
private String apikey;
@Index private String description;
}
当我在@ApiMethod
这样的
@ApiMethod
public DeviceRecord login (final HttpServletRequest request, final String id) {
return doSomethingThatGeneratesADeviceRecord(request, id);
}
我在客户端上取回了以下JSON:
{
"id" : "did1234567",
"apikey" : "apikey",
"description" : "Bob"
}
我想使用较短的密钥来减少开销并获得类似下面的内容
{
"id" : "did1234567",
"ak" : "apikey",
"dn" : "Bob"
}
如何对这些字段进行注释,以便使用自定义键而不是默认字段名称对它们进行反序列化?
感谢。
更新(答案):
@Entity
public class DeviceRecord {
@Id @APIResourceProperty (name = "id" ) private String id;
@APIResourceProperty (name = "ak" ) private String apikey;
@Index @APIResourceProperty (name = "dn" ) private String description;
}
答案 0 :(得分:1)
请查看@APIResourceProperty
注释。这允许您使用自己的自定义属性名称注释实体的属性。
文档在这里:https://developers.google.com/appengine/docs/java/endpoints/annotations#apiresourceproperty
例如在您的实体中的getAPIKey()方法上,您可以添加以下注释:@ApiResourceProperty(name = "ak")
,依此类推。