株式会社インデペンデンスシステムズ横浜システム開発エンジニアの西田五郎が運営しております。その他新規開発案件のご依頼をお待ちしております。APIでデータ蓄積の6回目です。APIテンプレートからプロジェクトを作成しました。センサデバイスの温度データを蓄積するイメージのモデルを追加して、そのモデルを操作するAPIコントローラを追加しました。実際にデータ蓄積の処理を動作確認します。前回はファイルを作成しただけなのでモデルのデータベース作成から順番に進めます。今回のソース一式は以下です。実際のプロジェクト一式は以下です。(※単なるサンプルプログラムです。ご利用による不具合、不利益等について弊社は一切責任を負わないものとします。以下の回に書いたコードファーストでのモデル構築が基礎になります。コードファーストでのモデル構築まず、データベースの更新(マイグレーション)を自動で実行出来るように設定します。[パッケージマネージャーコンソール]でパッケージマネージャーコンソールを起動します。-EnableAutomaticMigrations以下のメッセージが返りました。」これで、以下のようにMigrationsというフォルダとその配下にConfiguration.csというファイルが生成されました。このConfiguration.csのSeed()というメソッドにマスタデータ追加のコードを記述します。(※データベースが生成されたのであれば、そこにデータベース管理ツールでデータを追加すればいいのですが、コードファーストに基づいてコード側で処理します。)ここでは、モデルのSensorDeviceクラスで温度データを送信するデバイスという意味でテスト的に登録します。以下のようにConfiguration.csのSeed()メソッドを編集しました。}これでビルドして問題がないことを確認して以下を実行します。Update-Database以下のようなメッセージが出力されました。保留中の明示的な移行はありません。201507211031000_AutomaticMigration。メソッドを実行しています。」これで無事にデータが登録されているはずです。ここはコードファーストは関係なく直接データベースを確認してみます。データベースの詳細は、プロジェクトのweb.configファイルのconnectionStringsに記述されています。オブジェクトエクスプローラーで確認します。以下のように確認出来ました。以上でモデルとバックのデータベースが確認出来ました。次にAPIコントローラのPostでデータを登録してみます。前回自動生成させて現在時刻の設定だけを追加しました。※APIコントローラの基礎部分は以下に書きました。ApiControllerクラスとViewここでもHTMLファイルをプロジェクトに追加してJQueryでPOSTします。以下のようなHTMLファイルを追加しました。</script></body></html>このHTMLからPOSTしたところ以下の結果になりました。レスポンスとして登録したデータが返ってきます。そのレコードのIDをこの画面では表示しています。実際のデータベースでも確認出来ました。以上で確かに登録は出来ました。以下の問題がありました。・TemperatureData.CreatedDateTimeプロパティの[Required]アノテーションこの[Required]アノテーションを何となく書いたらPostするデータに必須となりました。実際にはサーバ側で設定しようとしたのですが、Postの際に何かしら設定されていないとエラーになります。・TemperatureData.DeviceIdプロパティのリレーション(外部キー)このプロパティは、SensorDeviceクラスのIdを想定したのですが、このモデルの書き方では特にSensorDeviceのIdに存在していなくても問題なく登録されます。ここでは、このようにコードファーストではモデルの記述がテーブル定義に反映されるので規約に従ってモデルを記述しないと思うようにテーブル定義に反映されないということでご了承下さい。必要な以下の関連サイト等を参照して頂ければと思います。First今回はここまでです。Piから温度データをPostして蓄積してみます。今回のシリーズの一覧です。Identityフレームワーク)の3回目です。Identityフレームワーク)の4回目です。前回は、ユーザ登録時にメールを送信する方法を確認しました。APIでデータ蓄積の2回目です。APIについて概要的なことを書きました。APIでデータ蓄積の3回目です。前回は蓄積するデータとして温度データをイメージしてそのモデルをコードファーストで書いてみました。今回は、MVCのCでコントローラの部分です。株式会社インデペンデンスシステムズ横浜システム開発エンジニアの西田五郎が運営しております。その他新規開発案件のご依頼をお待ちしております。