今回はタイトルにもあるように、Unityで REST API(RESTful API)でのシステム連携の方法を説明します。その際利用するのが Unity標準の UnityWebRequest です。
そして、そのシステム連携テストとして、既存の公開情報である天気予報情報を UnityWebRequestを用いて取得してみます。
【最終目標】
この記事では Unityでの REST API接続を説明します。REST APIとは と言うところから、Unityで REST API接続に使用する Unity標準機能 UnityWebRequestについて。
そして最後には UnityWebRequestを用いた REST APIで、公開情報の天気予報を取得してみます。
その天気予報情報は「天気予報API(livedoor天気互換)」( https://weather.tsukumijima.net/ )から取得します。
ここにも書かれていますが、以前とても使いやすい Livedoor天気サービスと言うものがありました。
REST APIで情報取得ができ、APIキーも必要なく、APIのテストで繋げてみるだけであればとても使い勝手が良いサービスでした。
しかし、それがサービス終了してしまい、その後上記の互換天気予報APIがリリースされています。(個人の方が運用してるのかな?)
しかし、それがサービス終了してしまい、その後上記の互換天気予報APIがリリースされています。(個人の方が運用してるのかな?)
こちらもいつまで続くか分かりませんが、続いている間は本記事のプログラムで繋げることができます。
【REST APIとは】
まずそもそも REST API(RESTful API)とはについて。こう言う基礎技術部分は他のサイトの分かりやすい説明を引用させていただきます。( 引用:IT用語辞典 e-Words:http://e-words.jp/w/RESTful_API.html )
-------------------------------------------------------------------------------------------
RESTful API(REST API)とは、Webシステムを外部から利用するための呼び出し規約(API)の1つである「REST」の設計原則に従って策定されたAPI。RESTそのものは適用範囲の広い抽象的なモデルであるため、一般的に RESTの考え方を Web APIに適用したものを RESTful APIと呼ぶ。
RESTful APIは、URL/URIで全てのリソースを一意に識別し、クライアントが HTTPでリクエストを送信すると、レスポンスが XMLやHTML、JSON、CSVなどで返される。
セッション管理や状態管理などは行わず(ステートレス)、同じ URLに対する呼び出しには常に同じ結果がかえされる。
また、データの取得は HTTPの GETメソッド、書き込みならば POSTメソッドといったように、リソースの操作の種類は極力 HTTPメソッドによって指定する。
-------------------------------------------------------------------------------------------
ここで、REST APIの説明で RESTful APIを説明していますが、広義では同じと考えて問題ありません。
また、上記にあった「REST」の設計原則とは以下の4つの原則のことです。
① :Addressability:全ての情報は URLやURIなどの汎用的な構文で一意に識別される。
② :Stateless:セッションなどの状態管理は行わず、やり取りされる情報はそれ自体で完結して解釈できる。
③ :Connectability:情報の内部に別の状態へのリンクを含めることができる。
④ :Uniform Interface:情報の操作(取得、作成、更新、削除)の体系が予め定義・共有されている。
この REST APIを用いることにより自社のシステム連携もできますが、外部のデータにアクセスしたシステム連携も容易に実現できることになります。政府系組織から提供されているオープンデータとの連携や Twitterや Facebook等の SNSとの連携なんかも行うことができます。
また、Unityではゲーム内で HTTPサーバーからテキストやテクスチャデータの取得、アセットバンドルのダウンロード等に使われます。HTTPサーバーへのデータ送信にも使われます。
【UnityでREST APIの使用法】
Unityでの REST APIの使用は「UnityWebRequest」を使うことになります。
UnityWebRequestに関しては Unityの公式マニュアルにも詳細が書かれています。
そこにある図を引用させ頂くと、大きな流れは以下のようになります。

まず UnityWebRequestのリクエストを生成し HTTPサーバーに送信。その結果を DownloadHandlerで取得します。
またより詳細は Unity公式のスクリプトリファレンスにも書かれております。
今回はここまでにして、具体的な Unityでの REST APIの使用法の解説と、実際に REST APIでの天気予報情報の取得方法を次回説明します。
Sponsored Link