diadia

興味があることをやってみる。自分のメモを残しておきます。

Retrofit

https://square.github.io/retrofit/

https://www.tsurutan.com/entry/2016/10/04/003929

http://pppurple.hatenablog.com/entry/2018/06/30/234400

インストール

implementation 'com.squareup.retrofit2:retrofit:(insert latest version)'
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'

使い方イメージ

インターフェースを定義する。retrofitインスタンスを生成する。 create()メソッドの引数をインターフェースとする。 retrofitを使う場合には、Modelを定義する必要がある。

インターフェースを定義する

interface API{
    @GET("api")
    fun test: Call<MyDataClass>
}

retrofitインスタンスを生成する。create()メソッドの引数をインターフェースとする。

val retrofit:Retrofit = Retrofit.Builder()
    .baseUrl("https://example.com/")
    .build();

GitHubService service = retrofit.create(GitHubService.class);

なお、POSTメソッドを行う場合にはretrofitインスタンスにretrofit#addConverterFactory()メソッドを追加する必要があるようだ。

val retrofit:Retrofit = Retrofit.Builder()
    .baseUrl("https://example.com/")
    .addConverterFactory(GsonConverterFactory.create())
    .build();

GitHubService service = retrofit.create(API.class);

参考:https://www.slideshare.net/sakura_bird1/retrofit2-okhttpandroidhttp-20160122

インターフェース

Interfaceでエンドポイント、メソッド、パラメーターを定義する。

APIをCallする

retrofitインスタンス設定したインターフェースのメソッドを呼び出す。その後にexecute()またはenque()メソッドを加えるとメソッドが実行される。

response = retrofit.test().execute()
//または
response = retrofit.test().enque({})

関連記事

retrofit Requestヘッダーを参照する方法 - diadia