Retrofit 2では、httpメソッドを表すサービスメソッドはCall
を返す必要があります。
Call
はジェネリックであり、httpメソッドの戻りオブジェクトを表す型をとる必要があります。
例えば、
@GET("/members/{id}")
Call<Member> getMember(@Path("id") Long id);
Deleteなどのhttpメソッドの場合、コンテンツは返されません。このような場合、Call
にどのパラメーターを指定する必要がありますか?
タイプとしてVoid)を設定するだけです。
@DELETE("/members/{id}")
Call<Void> removeMember(@Path("id") Long id);
Kotlin/Retrofit/Rxjava/RxKotlinを使用している場合
@Headers(JwtKeyTokenWithValue)
@DELETE("/members/{id}")
fun removeMember(@Path("id") Long id): Completable
そして、この方法で購読することができます
apiManager
.removeMember()
.subscribe(
{ Timber.i { "Member Removed!" } },
{ t -> Timber.e(t)})