Google Cloud Endpoints中的多个实体参数

aez*_*aez 3 google-cloud-endpoints

如何将多个实体从客户端传递到Google Cloud端点?

例如,在服务器的Endpoint api源文件中轻松完成传递单个实体:

public class SomeEndpoint {
...
   @ApiMethod(...)
   public MyEntity someMethod(MyEntity someEntity) {
   ...
   }
...
}
Run Code Online (Sandbox Code Playgroud)

然后在客户端我可以轻松打电话

endpoint.someMethod(someEntity).execute()
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将两个实体传递给端点怎么办?,如下所示:

 @ApiMethod(...)
 public MyEntity otherMethod(MyEntity someEntity, MyEntity someOtherEntity) {
    ...
 }
Run Code Online (Sandbox Code Playgroud)

这不起作用,GPE只生成一个带有单个MyEntity参数的端点库.

是否可以传递多个Entity参数?

谢谢.

Dan*_*oet 9

您不能在请求正文中发送多个实体类型.您需要创建一个包含这两个实体的包装器实体,例如:

class MyWrapperEntity {
  MyEntity someEntity;
  MyOtherEntity someOtherEntity;
  // ...
}
Run Code Online (Sandbox Code Playgroud)

但是,这不是您的示例所示(实体是相同的类型).使用集合实体List<MyEntity>Map<String, MyEntity>集合实体,例如:

class MyEntityCollection {
  List<MyEntity> items;
  // ...
}
Run Code Online (Sandbox Code Playgroud)