カオナビのAPIでデータ取得する際、DartでのAPI通信に初挑戦した。
pubspec
pubspec.yaml には http を追加する必要がある。
pubspec.yaml
dependencies:
http: ^0.12.0
追加したらターミナルでpub getを実行する。
$ pub get
コード
consumer_key
と consumer_secret
はカオナビ管理者から取得しておき、値を置き換えよう。
main.dart
import 'package:http/http.dart';
import 'dart:convert';
import 'dart:async';
void main() async {
String token = await getToken();
String users = await getUser(token);
print(jsonDecode(users)['data']);
}
Future <String> getToken() async {
String url = 'https://api.kaonavi.jp/api/v1.0/get_token';
var data = {
'consumer_key': 'xxx',
'consumer_secret': 'xxx'
};
// POST request
Response response = await post(url, body: data);
int statusCode = response.statusCode;
print(statusCode);
String body = response.body;
print(body);
String accessToken = jsonDecode(body)['data']['access_token'];
print(accessToken);
return accessToken;
}
Future <String> getUser(String accessToken) async {
String url = 'https://api.kaonavi.jp/api/v1.0/user';
var header = {
'X-KAONAVI-TOKEN': accessToken
};
Response response = await post(url, headers: header);
return response.body;
}
処理の流れ
- アクセストークンを取得
- トークンをもとにユーザーを取得
コード実行
ターミナルからmain.dartを実行する。
$ dart main.dart
処理が正常にいけば、カオナビのユーザー情報のjsonがログ表示される。
感想
追加ライブラリをpubspecで管理するやり方を覚えられた。
DartのAPI通信は初めて実装したが、思ったよりコード量が少なかった。
async/await は使いやすいが、もうちょっと実装に慣れる必要がある。
Dartいいね