byClassmethod検索AWSAlexaモバイルビッグデータサーバーレスTableauAlteryxイベントWebAPIに一回だけアクセスして、2回目以降はローカルモックで開発する方法2016年07月15日SIN(337)36この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにWebAPIにアクセスするアプリを作成する場合、本番用サーバだけで開発を行うのは、条件的に難しい場合があります。デバッグ用に、受信データを自由に変更したい場合もあります。今回は、天気予報データをWebAPIで取得するアプリを例にとって、1度だけサーバにアクセスしてデータを取得し、2回目以降はローカルのモックサーバで開発を進める手順を紹介します。天気予報のデータは、無料でも利用可能なOpenWeatherMapを使用しました。「1つのデバイスからのリクエストは10分に1回に抑える」「リクエスに失敗したら10分間は再リクエストを控える」などの制限が設けられています。http://openweathermap.org/appid#getこのような場合、サーバへのアクセスを頻繁に行って開発を進めることは、避けなければなりません。それでは、早々にモックサーバーを準備してみましょう。天気情報の取得まず、最初に、WebAPIからデータを取得するために下記のコードを作成しました。}];上記では、取得したJSONデータを文字列にデコードしてログに出力しています。これを実行すると、図のように取得したデータがログに出力されます。ログに出力された文字列は、整形すると次のようになっています。}}ここで取得したデータは、とりあえず保存しておきましょう。node-easymock続いて、ローカルにモックサーバを立てるのですが、今回は、node-easymockを利用させて頂きました。インストールnode-easymockは、下記のコマンドで階層下のディレクトリにインストールされます。easymockインストールが成功すると、node_modulesの下に、easymockがインストールされていることを確認できます。続いて、サーバから返すレスポンスを設定します。その中に先ほど取得したデータを入れます。@headerを追加すると、ヘッダーを付与することもできます。config.jsonの設置node-easymockを起動するディレクトリにconfig.jsonを作成します。内容は、とりあえず下記のようなもので大丈夫です。config.jsonsimulated-lagは、応答待ち時間の設定です。特定のパスごとに、応答待ち時間を設定することも可能です。下記のコマンドでeasymockは起動できます。起動すると、デフォルトでポートで3000で接続を待ち受けます。オプションで任意のポート番号を指定することも可能です。3001ブラウザで接続すると、モックサーバから応答が返ってきていることを確認できます。この時、コンソールには、次のようなアクセスログも出力されています。変更後も、本物のサーバにアクセスした時と同じようにレスポンスを得ることができています。上の図では、モックサーバーのログも確認されています。この際、シュミレーターであれば、接続先はlocalhostでいいですが、、実機で動作確認する場合は、node-easymockの動作する端末と、実機(iPhone端末)を同じWifiアクセスポイントに接続し、node-easymockのIPアドレスを指定する必要があります。接続先がモックになったので、遠慮なくアクセスが可能です。下の図は、天気アイコンと幾つかの情報を表示してみたものです。レスポンスは、先のJSONを編集することで、自由に変更できますので、気分が良いように晴天にしておきました。最後に今回は、モックサーバーとしてnode-easymockを使用させて頂きました。いつでも、このようなモックサーバーを軽易に立ち上げられるように、日頃から準備しておきたいと感じました。参考までに、作成したサンプルは、ここに置いておきます。3,373,358CX事業本部の平内です。最近は、音声で操作するアプリの開発を担当させて頂いてます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。濱田孝治371re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。PolicyのConditionにaws:CalledViaというキーが追加されました。いったキーなのかご説明します。夏目祐樹410こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。濱田孝治371re:Invnetの動画検索でもめちゃくちゃ便利ですが、その他ブログやホワイトペーパーやGitHubも横断検索できるので、是非一度使ってみてください。臼田佳祐296ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介256SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。