- 開発技術
- API連携
JavaでのWebAPI呼び出しについて
- #Java
WebAPIとは
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
Web上で別プログラムとデータのやり取りを行うためのインターフェースとなります。 自分で作成しなくても無料で公開されているWebAPIも存在します。 例えば「天気予報」や「郵便番号から住所取得」を行えるようなものもあります。
WebAPI呼び出しの実装方法
簡単な実装方法について説明をします。
【実装ソース】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
URL url = new URL("http://zipcloud.ibsnet.co.jp/api/search?zipcode=4600003"); // ①WebAPIのURLを指定する HttpURLConnection con = (HttpURLConnection) url.openConnection(); con.setRequestMethod("GET"); con.connect(); // ②WebAPIへ接続 if (con.getResponseCode() == 200) { BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); // ③WebAPIからの返却データを取得 String str; StringBuffer sb = new StringBuffer(); while ((str = in.readLine()) != null) { sb.append(str); } in.close(); System.out.println(sb.toString()); // ④JSON形式で結果を取得 } con.disconnect(); |
【ソースの説明】
①URL
WebAPIのURLを指定します。今回のサンプルプログラムでは住所を取得するAPIを呼び出していますので、郵便番号をパラメータに指定しています。
今回はhttpで接続していますが、httpsで接続することも可能となります。 また、今回はGETで接続したいため、setRequestMethod()に”GET”を指定しています。
②URL接続
上記の①で指定したURLに対してHTTP接続を行います。
③WebAPIからの返却値
InputStreamに呼び出した結果が格納されているので取り出しています。 文字コードに”UTF-8”を指定していますが、文字コードを指定しないと文字化けが発生する可能性があります。
④JSON
今回呼び出したWebAPIは結果をJSON形式で返却します。
プログラムの実行結果
上記のサンプルプログラムを実行すると以下のようなJSON形式で結果が返却されます。
1 2 3 4 5 6 7 |
{ "message": null, "results": [ {"address1": "愛知県","address2": "名古屋市中区","address3": "錦","kana1": "アイチケン","kana2": "ナゴヤシナカク","kana3": "ニシキ","prefcode": "23","zipcode": "4600003"} ], "status": 200 } |
WebAPI側でエラーが発生した場合はstatusが200以外で返却され、messageにはエラーの内容が設定されてきます。
実際にWebAPIを使用する場合は返却されたJSONの中身も解析して、エラー処理等を追加する必要があります。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>