[Android] RetrofitのGetリクエストで任意の複数のクエリーを設定する

はい。自分が勉強不足でよくわかってなかっただけなんですけどね、、、。

クエリーパラメータが可変でパラメータのKey自体も動的に変わるときにどうするんだ??

って感じに思って調べて実装してみたやつ。

例えば、、、。

@GET("hoge/{id}/list")
fun getHoge(
        @Path("id") id: String,
        @Query("option_1") option1: String? = null,
        @Query("option_2") option2: String? = null,
        @Query("option_3") option3: String? = null
        ・・・・・・): Single<HogeData>

こんな感じにoptionが何個あるかわからない場合とても不毛なInterfaceができるわけで、、、。

これをどうにかしたいなぁと。

答えはとっても簡単だったんだけど、、、。

スポンサーリンク

ってことで答えw

@GET("hoge/{id}/list")
fun getHoge(
        @Path("id") id: String,
        @QueryMap options: Map<String, String> = mapOf()
        ): Single<HogeData>

QueryMapを使ってMapで渡してあげれば良い!

ちゃんとググれば速攻答えは見つかったんだけど、なんとなく文字列連結させてQuery渡せばなんとかなるだろう!ってところから始まったから対応に時間がかかったw

ちゃんとリファレンス読もうね(;´Д`)

タイトルとURLをコピーしました