22

REST API と通信する Android アプリがあります。

リクエストごとに、アプリで必須パラメーターに加えてオプションのパラメーターを追加できるようにしたいと考えています。

Retrofit でこれを実装するにはどうすればよいですか? 現在、すべてのパラメーターはインターフェイスにハードコードされています。

@GET("/user/{id}/comments?position={pos}")  
void getComments(@Path("id") int id, @Query("pos") int pos, Callback<String> cb);

@GET("/user/{id}/likes?n={number}")  
void getLikes(@Path("id") int id, @Query("number") int number, Callback<String> cb);

/* etc */

RestAdapterオプションのパラメータをリクエストに動的に追加できるように、または何かを「サブクラス化」することは可能ですか?

4

2 に答える 2

19

のサポートMap<String,String>が利用可能になりました。を使用するだけ@QueryMap Map<String, String> paramsです。

http://square.github.io/retrofit/から:

複雑なクエリ パラメータの組み合わせには、マップを使用できます。

例:

@GET("/group/{id}/users")
List<User> groupList(@Path("id") int groupId, @QueryMap Map<String, String> options);
于 2014-09-01T14:55:08.763 に答える