• 検索結果がありません。

HTTP REST API の活性化 [ オプション ] 4. テスト

ドキュメント内 Microsoft PowerPoint - sMashHandson_06_RESTDB.ppt (ページ 64-74)

Collection

3. HTTP REST API の活性化 [ オプション ] 4. テスト

{

"fields" : {

"first_name": {"type":"string"},

"last_name": {"type":"string"},

"location": {"type":"string"}

} } {

"fields" : {

"first_name": {"type":"string"},

"last_name": {"type":"string"},

"location": {"type":"string"}

} }

{

"type": "employee",

"fields": {

"first_name" : "Alice",

"last_name“ : "Rogers",

"location" : "Seattle"

} }, {

"type": "employee",

"fields": {

"first_name" : "Bill",

"last_name" : "Stevens",

"location" : "Seattle"

} }, {

"type": “employee",

"fields": {

"first_name" : "Cathy",

"last_name" : "Tomlin",

"location" : "Boston"

{

"type": "employee",

"fields": {

"first_name" : "Alice",

"last_name“ : "Rogers",

"location" : "Seattle"

} }, {

"type": "employee",

"fields": {

"first_name" : "Bill",

"last_name" : "Stevens",

"location" : "Seattle"

} }, {

"type": “employee",

"fields": {

"first_name" : "Cathy",

"last_name" : "Tomlin",

"location" : "Boston"

}

ZRM.delegate();

ZRM.delegate();

app/resources/employee.groovy

データベース接続構成

ƒ 拡張モジュール (zero.resource) の依存性解決

– CLI での構成手順:

• <appRoot>/config/ivy.xml を開く

• 下記ステートメントを dependencies 要素の子要素として記述 – <dependency org="zero" name="zero.resource" rev="[1.0.0.0,

2.0.0.0["/>

• <appRoot>/config/ivy.xml を保存

• コマンド・ラインから zero resolve コマンドを実行

ƒ DB アクセス仕様の構成定義

– Embedded版Derbyを使用する場合、構成不要

– DBにアクセスするために必要な情報を,

<appRoot>/config/zero.configに定義する

• ドライバー・クラス名,アドレス , DB 名,ユーザー ID ,パスワード,他

• /config/db/zero-resource

• 構成例

– IBM DB2

/config/db/zero-resource = {

"class" : "com.ibm.db2.jcc.DB2SimpleDataSource",

"driverType" : 4,

"serverName" : "myserver",

"portNumber" : 50000,

"databaseName" : "MYDB",

"user" : "db2inst1",

"password" : "mypassword"

}

データベース接続構成 ( 続き )

ƒ DB アクセス仕様の構成定義 ( 続き )

– 既に構成済みのDBをZRMで使用したい場合

• <appRoot>/config/zero.config 内で, ZRM で使いたい DB の DB キーを /config/resource/dbKey に代入する

• 構成例

– 定義済み MySQL の myserver 上の MY1STDB を ZRM で使う場合:

/config/db/my-database = {

"class" : "com.mysql.jdbc.jdbc2.optional.MysqlDataSource",

"serverName" : "myserver",

"portNumber" : 3306,

"databaseName" : "MY1STDB",

"user" : "root",

"password" : "mypassword"

}

/config/resource/dbKey = "my-database"

ƒ リソース・モデルの定義

– JSON 形式で DB テーブル・スキーマを定義する

• キー”fields”の値として、Map形式で定義

• 暗黙的に次の2つのカラムが生成,使用される

– INTEGER 型のカラム ”id”

> プライマリー・キー

– TIMESTAMP 型のカラム ”updated”

– 詳細は次のリンクを参照

> http://www.projectzero.org/sMash/1.0.x/docs/zero.devguide.do c/zero.resource/declaration.html

– <appRoot>/app/models 下に テーブル名 .json という名前で配置 – 次のように , コマンド model sync を使って , リソース・モデル定義

を元にテーブルを作成可能

• > zero model sync

データベース接続構成 ( 続き )

ƒ リソース・モデルの定義 ( 続き )

– 定義例

{

"fields" : {

"name": {"type": "string", "max_length":50},

"birthdate": {"type": "date“},

"state": {"type": "string", "format": "region"},

"phone": {"type": "string", "format": "phone"}

}

}

ƒ リソース・モデルの定義 ( 続き )

– テーブルにインポートする初期データ ~イニシャル・データ・

フィクスチャ ~ を準備 ( オプション )

• JSON 形式で、初期データを記述

– キー ”type” の値として,テーブル名を定義

– キー ”fields” の値として, Map 形式で,初期データを定義

• <appRoot>/app/models/fixtures/initial_data.json という名前

で保管

データベース接続構成 ( 続き )

ƒ リソース・モデルの定義 (続き)

– テーブルにインポートする初期データ ~イニシャル・データ・フィクスチャ ~ を 準備 ( オプション )

• 例

[ {

"type": "persons",

"fields": {

"id" : "1",

“name" : "Tom",

"birthdate" : "2005-12-12",

“state" : “MN“,

“phone” : “111-111-1111”

} }, {

"type": "persons",

"fields": {

"id" : "2",

"name" : "Bill",

"birthdate" : "2001-03-1",

“state" : “TN“,

“phone” : “222-222-2222”

} }

ƒ リソース・ハンドラを用意し、一行 ”ZRM.delegate()” と記述 する

– 例 ) DB テーブル名が ”person” の場合

• <appRoot>/app/resources/person.groovy を作成

• person.groovy に次の一行のみ記述 ZRM.delegate()

ƒ HTTP REST API を使用する場合のみ,実行

Zero Resource Model API

ƒ WebSphere sMash アプリケーションから使用できるコレクショ ン・ライクな API

– SQL は不要

ƒ 主な機能

– LCRUD

ドキュメント内 Microsoft PowerPoint - sMashHandson_06_RESTDB.ppt (ページ 64-74)

関連したドキュメント