Retrofitを使ってSORACOM APIを呼び出すライブラリを作ってみた
SORACOM APIを使えばSORACOMのサービスをプログラム内でコントロールする事ができます。今回はSquare社製のOSSライブラリ「Retrofit」を使ってAndroidからSORACOM APIを呼び出すプログラムを作ってみました。
SORACOM API
https://dev.soracom.io/jp/docs/api/
Retrofit (今回は2.0.0-beta2を使用)
http://square.github.io/retrofit/
RetrofitでAPI呼び出し部分をどうやって書いたか
Retrofitを使えば以下のように書くだけで呼び出し部分が完成します。ここではauthAPIを呼び出す部分だけ書いてみます。
public class Soracom {
public static final Api API;
static {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.soracom.io/v1/")
.addConverterFactory(GsonConverterFactory.create())
.build();
API = retrofit.create(Api.class);
}
public interface Api {
@POST("auth")
Call<AuthInfo> auth(@Body AuthRequest authRequest);
}
}
Request用、Response用のモデルクラスを作ったのち、Apiインターフェイスを上記のように書くだけで呼び出しインターフェイス部分はOKです。
初期化の部分はstaticブロック内で全て完結しています。SORACOM APIのレスポンスのフォーマットは全てJSONなのでJSONパーサであるCsonConverterFactory
を使います。ちなみに、このパーサは内部でGsonを使っているのでモデルクラスもそれに対応した形で作っていきます。
作ったAPIをどのように呼び出すか?
ワーカースレッド内で以下のように呼び出すだけでOKです。
Call<AuthInfo> call = Soracom.API.auth(new AuthRequest(email, password));
Response<AuthInfo> response = call.execute();
AuthInfo authInfo = response.body();
Call<?>
はRetrofitのクラスなのでenqueue
メソッドを使えばUIスレッドから呼び出しすことができます。(このメソッドを呼ぶことでAPI問い合わせの処理を非同期呼び出しています。)
Call<AuthInfo> call = Soracom.API.auth(new AuthRequest(email, password));
call.enqueue(new Callback<AuthInfo> (){
@Override
public void onResponse(Response<AuthInfo> response, Retrofit retrofit) {
AuthInfo authInfo = response.body();
}
@Override
public void onFailure(Throwable t) {
}
});
そのライブラリ、使えます。
Retrofitを使えばAndroidで簡単にSORACOM APIを呼び出すことができます。そして、このAPIを実装したライブラリを用意しました。ApacheLicense2.0で公開しています。
SoracomApiAndroid
https://github.com/LyricalMaestro/SoracomApiAndroid
まだまだ不完全なところがありますが少しずつパワーアップさせていきます。(プルリクトかも受け付けます)
ライブラリはbuild.gradleのdependenceブロック内にcom.lyricaloriginal:soracom-api-android:+
と記載すれば使うことができます。
//中略
dependencies {
//中略
compile 'com.lyricaloriginal:soracom-api-android:+'
}
これを使ったアプリもあります。ぜひ動かしてみてください。
SoracomSampleApp
https://github.com/LyricalMaestro/SoracomSampleApp
Author And Source
この問題について(Retrofitを使ってSORACOM APIを呼び出すライブラリを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/LyricalMaestro0/items/ab0cdda26d26feaa5928著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .