3

クライアントから Google Cloud エンドポイントに複数のエンティティを渡すにはどうすればよいですか?

たとえば、単一のエンティティを渡すことは、サーバーのエンドポイント API ソース ファイルで簡単に実行できます。

public class SomeEndpoint {
...
   @ApiMethod(...)
   public MyEntity someMethod(MyEntity someEntity) {
   ...
   }
...
}

次に、クライアントで簡単に呼び出すことができました

endpoint.someMethod(someEntity).execute()

しかし、次のように 2 つのエンティティをエンドポイントに渡したい場合はどうすればよいでしょうか?

 @ApiMethod(...)
 public MyEntity otherMethod(MyEntity someEntity, MyEntity someOtherEntity) {
    ...
 }

これは機能しません。GPE は単一の MyEntity 引数を持つエンドポイント ライブラリのみを生成します。

複数のエンティティ引数を渡すことは可能ですか?

ありがとう。

4

2 に答える 2

9

リクエストの本文で複数のエンティティ タイプを送信することはできません。これら 2 つのエンティティを含むラッパー エンティティを作成する必要があります。

class MyWrapperEntity {
  MyEntity someEntity;
  MyOtherEntity someOtherEntity;
  // ...
}

ただし、それはあなたの例が示すものではありません(エンティティは同じタイプです)。List<MyEntity>代わりに、またはMap<String, MyEntity>コレクション エンティティの内部で使用します。たとえば、次のようになります。

class MyEntityCollection {
  List<MyEntity> items;
  // ...
}
于 2013-03-17T04:22:17.510 に答える
0

「名前付き」注釈を使用...

@ApiMethod(name = "sendStuff")
public void sendStuff( @Named("clientId") String clientId, @Named("stuff") String stuff )

Android の場合、クライアント コードは次のようになります。

SendStuff sl = service.sendStuff( clientId, stuff );
于 2013-03-16T17:55:27.443 に答える