Retrofit使ってFlutterのAPI通信を実装する方法を解説します。
RetrofitはFlutterのAPI通信でよく使われているDioをラッピングしたパッケージになっており、Dioをさらに使いやすくしたようなイメージです。
必要なパッケージを追加します。バージョンは記事執筆時のものです。
dependencies:
dio: ^5.1.2
retrofit: ^4.0.1
dev_dependencies:
build_runner: ^2.3.2
retrofit_generator: ^6.0.0+3
api.dartを作成します。ここにAPIを記述していきます。
LoginResponse
, LoginRequest
, User
はFreezed等を使用してあらかじめ作成してあるものとします。
import 'package:retrofit/retrofit.dart';
import 'package:dio/dio.dart';
part 'api.g.dart';
// ここにapiのエンドポイントを記載します
(baseUrl: "https://api.kamo-it.org")
abstract class RestClient {
factory RestClient(Dio dio, {String baseUrl}) = _RestClient;
("/auth/login")
Future<LoginResponse> authLogin(() LoginRequest request);
("/users/me")
Future<User> usersMe();
}
下記コマンドでgenerateファイルを作成します。
flutter pub run build_runner build
これを実行すると、api.g.dart
が作成され、apiが使えるようになります。
final dio = Dio();
dio.options.headers["Demo-Header"] = "demo header";
final client = RestClient(dio);
// @POST("/auth/login")を呼ぶ
final loginResponse = await client.authLogin(LoginRequest(...))
// @GET("/users/me")を呼ぶ
final me = await client.usersMe()
以上のようにとても簡単にAPI通信を実装することができます。ぜひ利用してみてください!!
可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More可茂IT塾ではFlutterインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。
Read More