More Related Content
Similar to Dominoアクセスサービスを使用したRESTサービスのプレイブック (20)
More from Mitsuru Katoh (17)
Dominoアクセスサービスを使用したRESTサービスのプレイブック
- 2. この資料について
この資料では、IBM (Lotus) Dominoで利用できるDominoアクセスサービ
ス(以降DAS)を理解するための実践的なガイダンスです。
動作環境
– Notes/Domino 8.5.3 FP5 UpgradePack1 適用
– Notes/Domino 9 Social Edition
- 4. Domino Directory の設定
ドミノサーバー文書
– 「インターネットプロトコル」ー「Domino Web Engine」タブ
• 「Domino アクセスサービス」セクションの有効なサービスにアルファベットの
「Data」を入力
※この項目はUpgradePack1が適用されていないドミノサーバーでは無効です
※別途「インターネットサイト」文書を作成してWebサイトを構築している場合は、「設定」タブ
にDomino アクセスサービスのセクションがあります
- 5. Domino Directory の設定(続き)
– サーバー文書を保存した後、Domino サーバーを再起動するか、次のコン
ソールコマンドを入力
• tell http refresh
以上でDomino サーバー上の設定は完了です。
DASが正常に動作するかを確認するには、
http://{ホスト名}/api/data のURLを
ブラウザに入力します。
右のように、ドミノサーバー上のデータベース
の一覧がJSON形式で表示さればOKです。
※ダブルバイト(漢字)はUNICODE
- 9. ビュー設計リソース
ビューおよびフォルダーの設計取得のURI
– http://{ホスト}/{データベー
ス}/api/data/collections/unid/{unid}/design
@name: 列のプログラム名
@titile: 列ヘッダータイトル
@width: 列の幅
@field: 「true」は文書内のフィールドを参照、
「false」は計算結果
次のURIでも同様のものが取得可能
http://{ホスト}/{データベー
ス}/api/data/collections/name/{ビュー
名}/design
- 12. ビューエントリーリソース(続き)
その他の主要なクエリーパラメーター
名前型オプ
ション
説明
start int Yes エントリの開始番号を指定(デフォルトは0で一番最初
count int Yes 返すエントリーの数を指定。デフォルトは10。
si int Yes エントリの開始番号を指定(デフォルトは0)
ps int Yes ページのサイズ
page int Yes ページ番号
search string Yes 全文検索クエリーで合致した文書のみを返す。(全文索引が作成されている
場合のみ)
searchmaxdocs int Yes 全検索クエリーで返す文書の数
sortcolumn string Yes 列のソートされたエントリーを返す
sortorder string Yes ソート順を指定。「ascending」「descending」
startkeys string Yes ソートされたエントリで開始をを指定したエントリから情報を返す
keys string Yes 指定したキーに合致したエントリーを返す。
例)?sortcolumn=Title&sortorder=ascending&keys=Document1
expandlevel int Yes 指定した階層のインデントレベルをもつエントリを返す
- 13. 文書リソース
文書取得URI
– http://{ホスト}/{データベース}/api/data/documents/unid/{unid}
@href: この文書のURI
@unid: 文書のユニバーサルID(UNID)
@form: 文書作成に使用される
フォーム名
文書アイテムに対するフォールド名と
その値
- 14. REST を使用したノーツ文書のCRUD
REST Web サービスのコンシューマー(クライアント)側へノーツ文書
内の情報を他システムへ提供をする場合は、これまで見てきた方法を使
用する。
コンシューマー側から、ノーツ文書内に情報を作成したり更新するには、
コンシューマー側でプログラムを用意する必要がある。
– 言語はプラットフォームによるがJava言語がもっとも標準
CRUD
– 更新:PUT
– 作成:POST
– 読み取り:GET
– 削除:DELETE
以降でCRUDを行なうのにすべてプログラミングするのは大変なので、ここ
では「Poster」というFireFoxのアドオンツールを使用して検証する
- 20. Posterによるノーツ文書更新
前のページと同じURIを用いて、今度は更新(PUT)を実行します。
– 前のページで返ってきた内容から@xxxxx をのぞくフィールドと値の部分
をコピーし、年齢(Age)の値を50に変更し、Content to Send に指定しま
す。
※Content Type:
application/json
の指定は必須です。
※今回更新したい内容はAgeだ
けですが、他のフィールドも指
定しなければなりません。指定
しない場合は、フィールドがな
くなりますので要注意です。
その為、ノーツ文書の更新は、
既存の文書内のフィールドを読
み取ってから、すべてのフィー
ルドに対して新たに値をセット
するプログラミングが必要です。
- 22. Posterによるノーツ文書新規作成
続いて、ノーツ文書を新規作成します。新規追加するフィールドとその値は、
Content to Send に残っている内容に少し手を加えたものにします。
– Age、Name、AlterNameを下の赤字のように変更します。
{
"Age”:13,
"AlterName":”Katsuo Isono",
"Gender":"u5973",
"PhoneCarrier":"u30C9u30B3u30E2",
"Name":”Katsuo Isono",
"CellPhone":"090-2753-7590",
"BloodType":"ABu578B",
"Married":"u672Au5A5A",
"Prefecture":"u6771u4EACu90FD",
"Email":"ishida_manami@example.com",
"Birthday":"1982-01-22T15:00:00Z",
"Comment":"u5DE6u30EBu30FCu30FBu5225u53E3u6D3E"
}
URLを次のようにし、「POST」ボタンをクリックします。
– http://{ホスト
名}/Employees.nsf/api/data/documents?form=Employee&computewithfor
m=true