‫みなさん､ いかがお過ごしでしょうか｡
‫そこで､ このビデオでは､ 前々回のビデオで構築した通貨変換器をAPIで使用する方法を紹介したいと思います｡
‫だから､ データベースで見たコードを使う必要はない｡
‫静的な例で作成したコードを使用するので､ 実際にはデータベースの例を見る必要はありません｡
‫例えば静的なWP Fの通貨換算器では､ 静的なデータを使用していますが､
‫APIからデータを使用するように拡張します｡ つまり､ インターネットからデータを取得し､
‫そのデータを使用して､ 最新の通貨価値と最新の換算率で通貨換算します｡
‫というのが､ 基本的な考え方です｡
‫もちろん､ 記事で確認することもできます｡
‫そのために完全な記事を作成しました｡
‫そうそう､ 基本的にはチェックするだけでいいんですよ｡
‫そこには､ すべてのコード､ たくさんの解説などが掲載されています｡
‫その
‫使用するAPIはオープン為替レートからで､ これはかなりクールです｡
‫このサイトでは､ 為替レートが表示され､ 私たちは月1000コールまで無料で使用することができます｡
‫ですから､ 学習用にはいいのですが､ 例えば実際に売りたいサービスに使おうと思うと､
‫すぐにお金が必要になります｡
‫でも､ さっきも言ったように､ テスト用には無料で使えるし､ それこそ必要なものなんです｡
‫だから､ そのような有料ページであれば毎回価格設定に行き､ ここに何があるのかを見るだけでいいのです｡
‫そして､ デベロッパープラン､ エンタープライズプラン､ 無制限プランがあることがわかりますが､ それは私たちには関係ないことです｡
‫私たちが興味を持っているのは､ この無料プランなので､ 基本通貨USDで1時間ごとの更新を提供し､ 1ヶ月あたり1000リクエストまで可能なのは素晴らしいことです｡
‫ここで無料プランにアクセスし､ 登録することで使用できるようになります｡
‫なるほど｡
‫だから､ フォローしたい人は､ ここで登録すればいいし､ 登録した後は
‫アプリIDが必要なので､ ここでこのIDが必要になります｡
‫そしてまあ､ このIDはAPIコールをするために必要なものです｡ なぜなら､ これでAPIコールをすることができ､ 基本的にデータが戻ってくるからです｡
‫そして､ どうやってデータを取り戻すのか？
‫まあ､ この形式で取得するので､ JSON形式で取得するわけです｡
‫JSON形式です｡
‫そして､ JSONはデータを表示するのにとても便利なフォーマットで､ テキストだけで読みやすいフォーマットです｡
‫だから､ 基本的には分解する｡
‫ですから､ これは通常多くの場合データを見るようなデータ表ではなく､ これは本当にテキスト形式で､ それでもかなり読むことができます｡
‫なるほど｡
‫基本的に取得するデータは､ 免責事項のライセンスタイムスタンプベースとレート､
‫レート自体は様々なレートの束で､ ベースはUSドルになりますね｡
‫つまり､ 1米ドルで3が手に入るわけです｡ 6 EADが何を意味するかは分かりませんが､ その場合､ 例えばオーストラリアドルは139ドルになります｡
‫なるほど､ これが取得する値になるわけですね｡
‫これを利用して､ 基本的にプログラムを調整し､ 最新の通貨や通貨比率を取得できるようにすれば､
‫コードに手動で入力する必要がありませんし､ 前回のビデオのようにデータベースタブを追加して､
‫プログラムに手動で入力する必要もありません｡
‫わかりました｡
‫では､ プロジェクトに行きましょう｡
‫そして､ これが静的プロジェクトです｡
‫そして､ 先ほども言ったように､ もしまだビデオを見ていないなら､ これをどのように構築するか､ WPFの部分などを紹介しているビデオを絶対に見てください｡
‫このビデオではWPFの部分はまったくカバーしませんから｡
‫ここではAPI側だけを取り上げます｡
‫そして､ これを実現するために必要なのは､ 特別な授業なのです｡
‫一定のフォーマットで情報を得ること､ ですね｡
‫そして､ それを手に入れるためのフォーマットが､ まあ､ さっきも言ったように､ こちらのフォーマットなんです｡
‫だから､ いつでもドキュメントを見に行けば､ もう少し読みやすくなっているはずです｡
‫これは､ この種のフォーマットやデータを取得するために必要なHTTPリクエストであることがわかります｡
‫このWebページにアプリIDでリクエストする必要がありますが､ これは基本的にバックエンドにあるアプリIDです｡
‫だから､ 私のは1000個に制限されるので､ これを使うには自分のアプリIDを使う必要があり､ もし誰かが使うなら､
‫そうなります｡
‫まあ､ 一部の人が使うのであれば､ 誤用が多くて使えなくなるでしょうね｡
‫だから､ あなた自身のものが必要になるのです｡
‫でも､ それができたら､ 得られるのはこういう情報､ こういう情報です｡
‫まあ､ これはルートということにしておきます｡
‫これは基本的に私の型になるもので､ すべてのデータを取得することができます｡
‫そして､ ルートの内部には､ クラスそのものでもあるプロパティを配置します｡
‫例えば､ レートは別のクラスになるわけです｡
‫そこで､ ratesというクラスを作りますが､ これはlongの値なので､ timestamp用のlongを作ればいいわけです｡
‫USドル用の文字列を作ったりすればいいんだけどね｡
‫では､ 順を追って設定していきましょう｡
‫まずはルートクラスから見てみましょう｡
‫そこで､ メインウィンドウのクラスの中に新しいクラスを作成します｡
‫それでは､ このパブリック・クラスを作成します｡
‫ルート
‫その中にレートと呼ばれる割合と､ タイムスタンプと呼ばれる長さがあります｡
‫そして､ 例えばライセンスを取得することができました｡
‫だから､ ライセンスも取得しよう｡
‫ここに入ってみよう｡
‫そして､ 簡単なライセンスに絞って紹介します｡
‫だから､ 公開文字列ライセンス｡
‫そして､ 今度はレートを取得する必要があります｡
‫でも､ さっきも言ったように､ レートは何種類もあるので､ ちょっと複雑なんです｡
‫では､ rateと呼ぶクラスを追加で作成します｡
‫そして重要なのは､ ここにある名前と全く同じ名前であることです｡
‫だから､ 同様に､ 私たちに公開される名前も､ これらだけではありません｡
‫まだまだありますよ｡
‫詳細はこちらでご確認ください｡
‫対応通貨で｡
‫このページでは､ サポートされているすべての通貨を見ることができます｡
‫しかも､ 全部を使うわけではありません｡
‫一部を使うだけでいいんです｡
‫しかし､ 重要なのは､ プロジェクトで使っている名前を､ そこでも使えるようにすることです｡
‫だから､ インドルピー､ 日本円､ 米ドル､ それが何であるかは分からない｡
‫ユーロ・カナダドル､ といったところでしょうか｡
‫なるほど｡
‫デンマークの王冠､ チェコの王冠｡
‫PHP まあ､ あれはカッコいい言語というか､ プログラミング言語なんでしょうけど｡
‫しかし､ この場合はそれ以上です｡
‫実は､ えーと､ レートでもあるんです｡
‫さて､ これらのプロパティはすべてゲッターとセッターで構成されていますね｡
‫このパブリッククラスにはセッターとゲッターがあり､ 例えばこのような形式のデータを取得するたびに､
‫すでにお分かりのように､ このクラスにはセッターとゲッターがあります｡
‫つまり､ これはプロパティをたくさん持つルートクラスですが､ 次にこれはプロパティ自体が複数のプロパティを持つことができる､
‫クラスです｡
‫そこで､ このクラスrateを作成し､ これをratesと呼ぶことにします｡
‫それが大事なんです｡
‫ですから､ ここにあるこれとプログラムの中で同じ名前を使うようにする必要があります｡
‫レート､ タイムスタンプ､ ライセンスを取得します｡ レートはこれらのプロパティ､ つまりこれらの通貨またはこれらの通貨のオンラインで利用可能な値だけを取得します｡
‫そして､ これが終われば､ 次は値の取得､ Webからのデータ取得ができるようになります｡
‫そして､ そのデータを取得するためのメソッドを追加で作成するつもりです｡
‫そして､ さっそくこの方法をご紹介しましょう｡
‫ここに貼り付けて､ 実際にメインウィンドウの後にやって､ 目を通してみましょう｡
‫つまり､ ここで使っているのは非同期タスクです｡
‫そこで､ sysのスレッディングタスクを使用してこれを解決してみます｡
‫なるほど｡
‫つまり､ これで何ができるかというと､ 並行して物事を進めることができるのです｡
‫活性化できるスレッドが複数あるんです｡
‫つまり､ タスクを使えば､ 非同期処理を実行することができるのです｡
‫また､ インターネットからデータを取得するときは､ 必ず非同期で行うべきです｡ そうしないと､
‫応答を待っている間に､ 基本的にプログラムがフリーズしてしまいます｡
‫そのため､ メインスレッド全体がフリーズしてしまい､ アプリケーションもフリーズしてしまい､ 正常に動作しなくなるのです｡
‫だから､ 非同期タスクを使うのです｡
‫asyncというキーワードを使い､ このタスククラスを使って､ 型落ちの結果を得たいのです｡
‫ですから､ タスクについてもっと知りたければ､ いつでもドキュメントをチェックすることができます｡
‫見えてきます｡
‫タスクは､ タイプtの結果を持つ一般的なバッグを与えてくれます｡
‫さて､ 結果はどうでしょう｡
‫T結果とは｡
‫さて､ このタスクによって生み出される結果の種類ですが｡
‫そして､ この作業によって生み出されたい結果は何なのか｡
‫データを取得するとき､ 私はルートを取得したいので､ 作成したこのクラスのこのタイプ､ つまりルートである結果を取得したいのです｡
‫そして､ その結果を使うことができます｡ つまり､ 結果として取得したデータを使って､
‫好きなことができるのです｡
‫例えば､ それを使って､ 通貨レートや為替レートを使用するプログラムに割り当てることができます｡
‫なるほど｡
‫そこで､ 新しいルート・オブジェクトを作成します｡ 基本的に､ ルート・オブジェクトをここで返すことができるようにしたいからです｡
‫そして､ インターネットを使って何かをするときは､ 必ずうまくいかないことがあるからです｡
‫使って､ 試して､ キャッチすることが必要です｡
‫そこで､ アプリケーションを壊さないようにtryとcatchを使っています｡
‫ここでも例外呼び出しが可能ですが､ 私はルートを返すだけにしています｡
‫これがうまくいかなかった場合は､ ここでusingキーワードをvar client､ 新しいHTTPクライアントと一緒に使っています｡
‫そこで､ 新しいクライアントを作成し､ このシステムドットネットのhttpというHTTPクライアントを使用します｡
‫だから､ 今はこれが使えるようになっているんです｡
‫そこで､ このクラスは､ URLからHTTPリクエストとレスポンスを受信して送信するためのベースクラスを提供します｡
‫なるほど｡
‫そして､ タイムスパンのために､ ネームスペースにsystemを追加する必要があります｡
‫スレッドタスクがあり､ データがあり､ httpがある｡
‫いいとこ取りで見れますよ｡
‫なるほど｡
‫そして今､ クライアントはタイムアウトを必要としている｡
‫だから､ 1分まで待つという時間的な余裕を持たせているんです｡
‫だから､ データを取得するための時間は十分にあるのです｡
‫もちろん､ ここで秒数を使うこともできますが､ ここでは丸1分とします｡
‫そして､ 私が受け取ることになる応答メッセージは､ client get async URLになります｡
‫では､ get asyncについて見てみましょう｡
‫Get asyncはリクエストを必要とするこのメソッドです｡
‫URIです｡
‫ですから､ 基本的にはリンクを送ったり､ リンクを渡したりしています｡
‫そこで､ 次に得られるURLです｡
‫何か大きなものを｡
‫つまり､ 非同期でデータを取得することができるのです｡
‫つまり､ アプリケーションがクラッシュしないように､ メインスレッドといわば並列に処理をしているのです｡
‫そして､ これは利用できるものだからです｡
‫つまり､ availableというキーワードで､ このタスクは非同期で何かを行うことがわかります｡
‫結果を待ち､ 結果が出たらそれをレスポンスに格納するため､ ここでこの重み付けキーワードを追加する必要があります｡
‫だから､ 基本的にはこのような対応になると思います｡
‫そして､ その回答は､ 私たちがまだ読むことのできない形式であるだろう｡
‫だから､ こういう対応になるんだろうけど､ まだ読めない形式｡
‫つまり､ まず文字列を作成する必要があります｡
‫これは､ いわばバイト単位のデータですね｡
‫今度は､ それをanに変換します｡
‫文字列なので､ 非同期操作でhttpコンテンツを文字列にシリアライズして見ることができます｡
‫そこで､ このデータをシリアライズする｡
‫そこで､ それを文字列の形式にする｡
‫そこで､ 私たちのレスポンス､ つまりHTTPレスポンス・メッセージを利用します｡
‫その内容を取得するので､ HTTPレスポンスメッセージの内容を取得または設定します｡
‫つまり､ 基本的にはそこからデータを取得し､ それを文字列として読み込み､ 再び非同期で離れてこれを行うことで､ 再び利用できるようになります｡
‫そこで､ ここに重りをつける必要があります｡
‫これにより､ 応答文字列が得られます｡
‫あとは､ JSON形式であることが必要です｡
‫そのため､ ここではJSONコンバータを使用しました｡
‫そこで､ ここでJSON変換を使って､ 実際に使ってみます｡
‫こちらでは提供もしていないので､ 手動でやる必要がありますね｡
‫つまり､ ここで新しいターンソフトドットを使ってと言うことです｡
‫ジェイソン
‫そして､ これを動作させるために､ このパッケージがインストールされていることを確認する必要があります｡
‫そこで､ 新しいパッケージの入手を管理します｡
‫そしてここで､ このニュートンソフトジェイソンをインストールする必要があります｡
‫では､ インストールしてみましょう｡
‫また､ ブラウズして検索するだけでもOKです｡
‫私の場合は､ まあ､ すでにそこに名前を入力したので､ 直接利用できました｡
‫そして､ それが読み込まれてインストールされると､ 今度はこのパッケージを使って､ ニュートンソフトを見ることができるようになるのです｡
‫Jason 今はエラーが消えて､ 問題なく動作しています｡
‫さて､ ここでできることは､ ジェイソン・コンバートが機能し､ ジェイソン・コンバートはこのニュートンソフトのジェイソンから来ていることがわかることです｡
‫つまり､ DCは私たちが持っているオブジェクトのルートを実現するものなのです｡
‫応答文字列と｡
‫そこで､ レスポンス文字列を与える必要があるのですが､ これはすでにHTTPレスポンスであるデータを文字列に変換しており､
‫今度はその文字列をJSONオブジェクトに変換しているのです｡
‫さて､ このレスポンスオブジェクト､ つまり隣接オブジェクトを使えば､ Cシャープオブジェクトと同じように作業ができるようになりました｡
‫これによって､ そのプロパティに簡単にアクセスできるようになったからです｡
‫例えば､ timestamp response, object, dot timestamp と言っておけば､ あとはメッセージボックスに表示させるだけなので､
‫これが一番簡単な表示方法だと思うからです｡
‫そして､ こうすることで､ 実際にインターネットからデータを取得していることを表示できるようになったのです｡
‫ちょっとテストしてみましょう｡
‫でもその前に､ ここでこのメソッドを終わらせてしまいましょう｡
‫では､ そのレスポンスオブジェクトを返してみましょう｡
‫そのため､ このメソッドでデータを取得するたびに､ タスクルートのレスポンスオブジェクトが返されます｡
‫基本的には､ タイムスタンプやさまざまな通貨レートなどのルート要素にアクセスできるようになります｡
‫そして､ 万が一うまくいかなかったときのために｡
‫だから､ 万が一､ レスポンスコード､ このステータスコードが大丈夫じゃなかった場合｡
‫そして､ 次にあるステータスコードを見てみましょう｡
‫ステータスコードには200というものがあり､ おそらく最も知られているのは404でしょう｡
‫ステータスコードが見つかりません｡
‫つまり､ これは記憶に残るステータスコードなのです｡
‫0404 Girlfriend not foundとか､ website not foundとか､ ご存知の方も多いと思います｡
‫なるほど｡
‫このように､ さまざまなレスポンスコードが用意されているのです｡
‫そして､ 基本的にHTTPページやウェブページ､ あるいはあらゆる種類のHTTPリクエストにアクセスしようとするたびに､ 1回送信すると､
‫まずステータスコードが表示されます｡
‫そして､ ステータスコードに基づいて､ そのデータを使って何かをするかしないかを決めることができるのです｡
‫なぜなら､ 例えば､ ステータスコードがOKでなかったので､ 例えば､ データを取得できなかった場合､ 見つかりませんでしたとなります｡
‫それでは､ データを扱うことができません｡
‫そうすると､ じゃあ飛ばしてみようか､ 他のことをやってみようかということになる｡
‫しかし､ 200であれば､ つまりOCであれば､ 基本的に内部的には200コードであることを意味し､
‫それを使って作業できることがわかります｡ そして､ そのときだけ､ レスポンスをJSONオブジェクトに変換し､ プロジェクトで使用できるようにしたいのです｡
‫そうでなければ､ 空のルート・オブジェクトを返すことになりますから｡
‫また､ 万が一プログラムがクラッシュしたり､ このタスクがデータクラッシュした場合は､ ここで私のルートを返すだけです｡
‫なるほど｡
‫さて､ このバインドカレンシーですが､ どこでバインドカレンシーを使っているか見てみましょう｡
‫まあ､ メインウィンドウで使っているわけですが｡
‫さて､ 値を取得する新しいメソッドを作成しましょう｡ あるいは､ このための特別なメソッドを作成することもできます｡
‫まあ､ 非同期メソッドだから意味があるんだろうけど｡
‫つまり､ 非同期の void get value があり､ 通貨をバインドするのは値を取得してからにしたいのです｡
‫だから､ 価値観が必要なんです｡
‫ここでのvolの変数はroot型になります｡
‫そこで､ ここに付け加えさせてください｡
‫実はできるんです｡
‫そうですね｡
‫そして､ 一番上に追加してみましょう｡
‫そこで､ Valと呼ぶ新しいルートオブジェクトを作成し､ その時点で空のルートオブジェクトとなる値を設定することにします｡
‫だから､ このクラスのオブジェクトになる｡
‫そして､ 先に言っておく｡
‫うまく設定することで､ データから得たものを元にこのルート値
‫さて､ データを取得するこの方法は､ 基本的に先ほど作成した非同期メソッドを呼び出し､ すべてがうまくいった場合にこのメソッドが返されます｡
‫レスポンスオブジェクトはJSONタイプで､ 基本的にはこのような形式の可読オブジェクトになる予定です｡
‫これはJSONオブジェクトで､ これを使えば､ 例えばresponse, object, dot timestampと言うだけで､
‫簡単にそのプロパティにアクセスできるので､ 非常に簡単に作業できます｡
‫ここでURLを渡す必要があるので､ URLという文字列を渡す必要があります｡
‫このリンクは､ 基本的にはこのリンクですが､ ここにあるアプリIDを取り出し､ この部分を置き換えるわけです｡
‫つまり､ アプリのIDを入れ替えると､ このようになります｡
‫だから､ 自分のIDに置き換えるだけなんです｡
‫ですから､ コードをダウンロードすれば､ ここの部分を置き換えるだけでいいのです｡
‫アプリID以降は全てイコール記号です｡
‫これを自分のIDに置き換えて､ 今度は自分のリクエストを作成します｡
‫ちなみに､ ブラウザでテストすることも可能です｡
‫では､ ここで実際にやってみましょう｡
‫ブラウザでテストしてみると､ こんな感じです｡
‫これが､ 異なる通貨と通貨レートをすべて使用した場合の結果です｡
‫つまり､ 免責事項､ ライセンス､ タイムスタンプ､ レートがあり､
‫これらのレートはすべて､ フロート値またはダブル値になっています｡
‫2倍の値として､ そう､ それだけでいいんです｡
‫つまり､ 先ほどのコードを使うと､ それが今､ 受け取れるということです｡
‫だから､ 基本的にはここにあるコード､ これです｡
‫あなたが見たのと全く同じものが出てくるはずです｡
‫このValは､ 今度はレートと､ 今回の場合はタイムスタンプとライセンスを含むルートとなるオブジェクトになります｡
‫少なくとも､ 私はそれでやっています｡
‫これらは私が使用するプロパティであり､ 他のものを使用することもできます｡
‫まあ､ この場合､ ここで利用できるのは､ ライセンスとベースが欠落していたり､ 免責事項やベースが欠落しているものばかりですが｡
‫でも､ ベースだと､ まあベースは嬰ハ音記号のキーワードだから､ 気をつけないといけない｡
‫だから
‫このとき､ 値を取得するか､ 値を取得することができる｡
‫ここで､ メインウィンドウのメソッドと､ 基本的にはメインウィンドウのコンストラクタで､ 値の取得を呼び出すことにしましょう｡
‫そして､ 今度は値を取得して､ 通貨をバインドします｡
‫さて､ 先ほど作ったメソッドなので､ 通貨を結合して見ましょう｡
‫もちろん､ 通貨を調整し､ 結合する必要があります｡ 以前のようにデータを入手し､
‫手動でデータを入力することはできません｡
‫それが､ ここでの活動です｡
‫そこで､ 今回はウェブからデータを取得することにします｡
‫そこで､ 手動でさまざまな値を使用する代わりに､ 私が行うことは､ 次のとおりです｡
‫ここに貼り付けてください｡
‫シンプルにいこうと思います｡
‫ちなみに､ もう少し書きやすいようにDTにリコールまたは改名しています｡
‫なるほど｡
‫そこで､ このデータテーブルをTと呼び､ データテーブルの行を用意しました｡
‫最初の位置でselectを追加しています｡
‫しかし､ 2番目の位置には､ 例えばインドルピーがあり､ インドルピーの価値レートを表示します｡
‫では､ 改めて価値とは何なのか｡
‫さて､ valueは､ 私たちが作ったこのブルートオブジェクトで､ もちろんrootタイプで､ レートを含んでいます｡
‫これはタイプレートであり､ 私たちがここで持っているこれらのレートのすべてを可能にするものです｡
‫だから今
‫ここで使っている名前も確認しておかないと､ アクセスできないからです｡
‫だから､ いろいろなレートを全部取得して､ そのレートの名前､ 正確にはその通貨の名前に割り当てているんです｡
‫通貨アイテムやソースなどのコンボボックスはそのまま使えるので､ 他の部分はほとんど変わりません｡
‫変更したのは､ データが手動で追加した要素から来るのではなく､ ウェブから来るようになっただけなので､
‫それらに変更を加える必要はありません｡
‫でも､ これって基本的に数字だけですよね？
‫だから､ 私たちのプログラムにとっては､ それほど大きな違いはない｡
‫データ形式を変えていないので､ データの出所は関係ありません｡
‫データ形式は同じですが､ このようにウェブから来るというのは､ とてもクールです｡
‫さて､ このアプリケーションを実行すると､ このようなタイムスタンプが表示されることが確認できます｡
‫つまり､ これは私がこれを実行した瞬間の現在のタイムスタンプです｡
‫そして､ なぜこのウィンドウが出てきたのか｡
‫まあ､ ここにメッセージボックスをつけたからなんですが｡
‫ちょっと変えてみようか｡
‫では､ タイムスタンプを表示する代わりに､ 他に何があったのでしょうか｡
‫ライセンスがあったので､ 代わりにライセンスを取得させてください｡
‫だからここでは､ この1つをライセンスと呼ぶことにします｡
‫もう一度､ 実行してみましょう｡
‫そして今､ ご覧ください｡
‫ライセンスは､ open exchange rates dot orgのライセンスです｡
‫では､ レートを出してみましょう｡
‫だから､ 私たちが持っているすべてのレート｡
‫料金です｡
‫そして､ この1枚｡
‫試してみよう｡
‫レートが違う形式でも､ クラッシュするかどうか見てみましょう｡
‫まあ､ あくまで通貨の静止ウィンドウレートなので､ このような特殊な形式のデータは表示されないのですが｡
‫代わりにこの応答文字列を使ってみましょう｡
‫だから､ この全体を1つの文字列として取得する必要があるのです｡
‫ほら､ いるじゃないですか｡
‫つまり､ これは基本的に､ 取得したすべてのデータの文字列フォーマットです｡
‫だから､ 料金の免責事項､ ライセンスのタイムスタンプ｡
‫このように､ 私たちはインターネットから電流のデータを取得していることがわかります｡
‫為替レート
‫さて､ ここで定義した為替レートを選択することができるのが素晴らしい点です｡
‫そして､ 1,000ユーロを換金したいとします｡
‫よく米ドルにと｡
‫このように､ 本来は逆であるはずの計算が､ 正しく行われていないのです｡
‫だから､ 1,000米ドルで843ユーロになるはずだ｡
‫そして今､ 私たちは異なる値を使用している､ あるいは異なる値を取得しているため､ 基本的に私たちのプログラムは米ドルをベースとしており､
‫取得したデータも米ドルをベースとしています｡
‫だから､ ここでは米ドルが基本だと言われています｡
‫メインウィンドウのXMLファイルにあるConvert Click関数をもう一度変更する必要があります｡
‫数式を少し変更する必要があります｡ 数式は通貨からではなく､ ここではCとBから通貨選択値､
‫さらにその下､ または右側にある通貨選択値とする必要があります｡
‫これは､ 2つの通貨の方向を入れ替える必要があるため､ そうしないと間違った値が得られるからです｡
‫そして今､ もう一度それを実行したら｡
‫そして実は､ このボックスは本当に迷惑なので､ 取り除くべきです｡
‫ここでコメントすればいいんです｡
‫これですね｡
‫今すぐ
‫もう一度実行してみましょう｡
‫そして､ 私たちは1,000米ドルとし､ それをユーロに換算してみましょう｡
‫では､ 収録の時点で1,000米ドルで何ユーロになるのでしょうか？
‫843でございます｡
‫なるほど｡
‫そうそう､ 結構あるんですよ｡
‫これで､ 基本的にインターネットからデータを取得する方法､ APIを使用する方法､
‫APIの情報をJSONオブジェクトに変換して使用する方法､ つまり､ 鋭いオブジェクトのように使用することができます｡
‫まず重要なのは､ 非同期でデータを取得するため､ 時間がかかったり､ うまくいかなかったりする可能性があるため､
‫非同期タスクを使っていることです｡
‫そのため､ ここではHTTPクライアントを使用してタイムアウトを発生させ､ 特定のタイプのレスポンスを返すようにtryを使用しています｡
‫これはHTTPレスポンス・メッセージのタイプで､ 私たちはこれを必要とします｡
‫まず､ そのレスポンスのステータスコードを取得し､ 次に内容を取得して､
‫例えば文字列として読み込み､ それを文字列に格納し､ その文字列からJSONオブジェクトを作成することができます｡
‫そこで､ シリアライズ・オブジェクトをJSONに変換して使用します｡
‫このクラスは､ 基本的に､ 先ほどJSONフォーマットから取得したさまざまなプロパティを持つ､
‫私たち自身が作成したクラスです｡
‫このビデオで学んだのと同じ原則を適用して､ そこからデータを取得し､ 自分のプログラムでそれを扱うことができます｡
‫というわけで､ このビデオを楽しんでいただけたでしょうか？
‫このようなことは知っておいたほうがいいし､ 一般的な開発者として本当に役に立つし､
‫役に立つと思うので､ コースに少し追加することにしたのです｡