日曜日に公開したg3 0.2.1でg3アプリケーションDataStoreCrud.scala(以下に再掲)を実行してみましょう。
package org.goldenport.g3.app import org.goldenport.g3._ import org.goldenport.g3.atom._ import org.goldenport.g3.messages._ import org.goldenport.g3.messages.datastore.{Create, Fetch, Query, Insert, \ Update, Delete, Drop} class DataStoreCrud extends G3Application with UseRecord { val KIND_NAME = 'g3crud val schema = Schema( IdField, ('name, XToken), ('zip, XToken), ('address, XString), ('phone, XToken, ZeroMore), ('comment, XString)) datastore('appds) val create = Create(KIND_NAME, schema) val fetch = Fetch(KIND_NAME, 5) val query = Query(KIND_NAME, Id(5)) val insert = Insert( KIND_NAME, Record('id -> 5, 'name -> "Yamada Taro", 'zip -> "1234567", 'address -> "Yokohama", 'phone -> "0451234567", 'comment -> "omlet rice")) val update = Update( KIND_NAME, Record('id -> 5, 'name -> "Suzuki Hanako")) val delete = Delete(KIND_NAME, Record('id -> 5)) val drop = Drop(KIND_NAME) port("/create") agents(create) invoke("appds") port("/fetch") agents(fetch) invoke("appds") port("/query") agents(query) invoke("appds") port("/insert") agents(insert) invoke("appds") port("/update") agents(update) invoke("appds") port("/delete") agents(delete) invoke("appds") port("/drop") agents(drop) invoke("appds") }
org.goldenport.g3.app.DataStoreCurdはg3に組み込まれているので、以下のように実行します。
$ g3 -g3.application:org.goldenport.g3.app.DataStoreCurd \ -g3.server
ルート「/」にアクセスすると、DataStoreCurdでは対応するポートがないのでエラーとなります。(エラーメッセージは改良する予定。)
以下、Create、Insert、Fetch、Update、Query、Delete、Dropの順に実行すると以下のようになります。特に画面の定義はしていませんが、ポートチャネルを実行して結果のメッセージに応じて自動的に整形して表示するようになっています。