初めに
iOSやAndroidの開発を今までやってきましたが、
ここ最近はFlutterを使用して開発をしている企業も
多いのではないかと感じます。
フリーランスの案件にもちらほら見かけるので、
今更かもですが勉強しなくては。。
Dartは簡単に触ったので、お馴染みのAPI操作を
やってみました!
使用するAPI
郵便番号をパラメータとして使うことで、
住所の情報がJson形式で返却されるAPIを使用します。
参考:郵便番号データ配信サービス
環境
・Android Studio
・url_launcher: 6.1.2
・flutter_html: 2.2.1
・http: 0.13.3
実装
全体のソースというよりは、テンプレート見たいな感じで
順に説明します。
0. 事前準備
// ①pubspec.yamlで使用するパッケージを入力
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
http: ^0.13.3 // 追加
上記入力ができたら、右上の「Pub get」を動作させると
追加したライブラリを使用できるようになります!
1. URLを準備
// zipCodeは任意の郵便番号
// ハイフンはあってもなくても可
String url = 'https://zipcloud.ibsnet.co.jp/api/search?zipcode=$zipCode';
2. APIを呼び出し、結果を受け取る
var result = await get(Uri.parse(url));
3. Json形式にパースする
// json形式(key/value)なのでMapを使用
Map<String> data = jsonDecode(result.body);
// 後は呼び出し元に返却でも出力でも任意の操作で!
print(data);
試しに郵便番号を指定すると。。。
// 北海道に旅行行きたいなぁ。。
String zipCode = '0010001';
Jsonで返ってきた!!
{
"message": null,
"results": [
{
"address1": "北海道",
"address2": "札幌市北区",
"address3": "",
"kana1": "ホッカイドウ",
"kana2": "サッポロシキタク",
"kana3": "",
"prefcode": "1",
"zipcode": "0010000"
}
],
"status": 200
}
ちなみに誤りの番号を入れると。。
// zipCode = '9999999';
{
"message": "パラメータ「郵便番号」の桁数が不正です。",
"results": null,
"status": 400
}
警告
エラーケースもあり!
7桁以外の数字を入力した場合は別のエラーが
返却される。。
// zipCode = '99999999999';
{
"message": null,
"results": null,
"status": 200
}
最後に
以上がFlutterでAPIを呼び出す処理になります!
意外とシンプルですね!
ただ誤った番号を入力した際など様々なケースを
試したり、アプリに考慮すると色々実装も
楽しくなるのではないでしょうか?
この記事が参考になれば幸いです!