我想用传送对象或列表的数组应用程序引擎的端点API
I want to send array of object or list to app engine using endpoint API
@ApiMethod(name = "insertGroupMembers")
public List<GroupMembers> insertGroupMembers(Collection<GroupMembers> members) {
EntityManager mgr = getEntityManager();
List<GroupMembers> listMembers = new ArrayList<>();
try {
for (GroupMembers groupMember : members) {
mgr.persist(groupMember);
listMembers.add(groupMember);
}
} finally {
mgr.close();
return listMembers;
}
但它示出了在时间产生API库的误差如下: -
But it shows the error at the time generating api library as follows :-
描述资源路径位置类型 有一个问题产生的API元数据的云端点类:com.google.api.server.spi.config.validation.CollectionResourceException:groupmembersendpoint.com.appbell.tagalone.GroupMembersEndpoint.insertGroupMembers参数(类型的java.util.Collection) :非法参数类型(类com.appbell.tagalone.GroupMembers在集合类型的java.util.Collection)。数组或实体类型的集合是不允许的。 TagAlone-AppEngine上未知的谷歌的App Engine云端点问题标记
Description Resource Path Location Type There was a problem generating the API metadata for your Cloud Endpoints classes: com.google.api.server.spi.config.validation.CollectionResourceException: groupmembersendpoint.com.appbell.tagalone.GroupMembersEndpoint.insertGroupMembers parameter (type java.util.Collection): Illegal parameter type ('class com.appbell.tagalone.GroupMembers' in collection type 'java.util.Collection'). Arrays or collections of entity types are not allowed. TagAlone-AppEngine Unknown Google App Engine Cloud Endpoints Problem Marker
我不记得我读它,但是,如果我没有记错,CE不允许数组或列表的方法参数。不要问我为什么。我记得看到的解决方案是将对象传递给方法的列表作为对象的一个属性。
I don't remember where I read it, but–if I'm not mistaken–CE does not allow arrays or lists as method parameters. Don't ask me why. The solution I remember seeing was to pass an object to the method with the list as one of the object properties.
那么你的方法是这样的:
Then your method would look like:
public List<GroupMembers> insertGroupMembers(MembersWrapper membersWrapper) {
for (GroupMembers groupMember : membersWrapper.members) {
mgr.persist(groupMember);
listMembers.add(groupMember);
}
…
}