VladMorzhanov
9/23/2017 - 2:58 PM

Android APIService class example for retrofit 2.

Android APIService class example for retrofit 2.

package com.dev.data.source.network;

import com.mevics.dev.data.models.Settings;
import com.mevics.dev.data.models.Stats;
import com.mevics.dev.data.models.User;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PUT;
import retrofit2.http.Part;
import retrofit2.http.Query;

public interface APIService {

    @GET("health-check")
    Observable<ResponseBody> getHealthCheck();

    @GET("user")
    Observable<User> getUser(@Header("x-access-token") String x_access_token);

    @PUT("user")
    Observable<User> updateUser(@Header("x-access-token") String x_access_token,
                                @Body User user);

    @POST("link")
    Observable<ResponseBody> linkGoogleOrFacebook(@Header("x-access-token") String x_access_token,
                                                  @Query("type") String type,
                                                  @Query("id") String id);

    @Multipart
    @PUT("user/photo")
    Observable<User> editUserPhoto(@Header("x-access-token") String x_access_token,
                                   @Part MultipartBody.Part image);
}