A-5

XPagesでRESTを使ってみたら、
こんなんだった
株式会社エフ マネージャー
御代 政彦(みよ まさひこ)
e f f e c t

f o r c e

免責事項について(お約束です)
 本資料は、個人的な見解によるものです。情報の内容に

ついては万全を期しておりますが、その内容を保証する
ものではありません。
 本資料の情報は、使⽤先の責任において使⽤されるべき
ものであることを、あらかじめご了承ください。
 執筆者の承諾なしに、コピー、複製、他のメディアに転
載する事はご遠慮ください。
 当資料に記載された製品名または会社名はそれぞれの各

社の商標または登録商標です。

©2013 ef Co., Ltd. All rights Reserved.

- 2-
e f f e c t

f o r c e

アジェンダ


RESTとは?
 RESTサービス
 Notes/DominoでのRESTサービス
 JSONについて



Notes/Dominoでの設定方法
 Dominoディレクトリ
 Notesアプリケーション
 デモ(動作確認)



アプリケーションへの組み込み
 XPages Extension Libraryを使⽤した場合
 クライアントJavaScriptを使⽤した場合



Q&A

©2013 ef Co., Ltd. All rights Reserved.

- 3-
e f f e c t

f o r c e

RESTとは?


RESTサービス
 正式名称は、「REpresentational State Transfer」
 直訳すると、「具象的な状態の転送」(よく分からん・・・)
 パラメータを指定して特定のURLにHTTPでアクセスすると、
狭義の意味としては、XMLで記述されたメッセージが送られて
くるインターフェースを指す。
 HTTP ベースの軽量なWeb API を提供している
 データにはXML やJSON などの形式を利⽤
 HTTP のGET/POST/PUT/DELETE メソッドでCRUD 操作を

実現


CRUD…Create(作成)、 Read(読み込み)、 Update(更
新)、 Delete(削除)のこと

©2013 ef Co., Ltd. All rights Reserved.

- 4-
e f f e c t

f o r c e

RESTとは?


Notes/DominoでのRESTサービス
 Domino上のNotesアプリケーションへHTTPプロトコルを利

⽤してアクセスするためのサービス
 Notesアプリケーション、ビュー、フォルダ、文書にアクセ
ス可能


サーバ単位、アプリケーション単位で制御が可能

 データの作成、読込、更新、削除(CRUD)をサポート
 データフォーマットに、JavaScript からの操作が効率的な

JSONを採⽤

※「テクてくロータス 2012年3月度」資料より抜粋

©2013 ef Co., Ltd. All rights Reserved.

- 5-
e f f e c t

f o r c e

RESTとは?


JSONについて
 正式名称は、「JavaScript Object Notation」
 JavaScriptにおけるオブジェクトの表記法をベースとした軽

量なデータ記述言語である。


JavaScript専⽤ではなく、様々なソフトウェア間でデータの受
け渡しができるように設計されている

 書式はXMLに比べて、かなり簡略化されている。
 オブジェクトは{}で囲む
 配列は[]で囲む
 オブジェクトの要素は、:で区切る
【JSONデータのサンプル】
[
{
"@modified":"2013-06-16T03:37:44Z",
"@unid":"3D50EEFC6D5ECA1349257B8C00135AAB",
"@href":"http:¥/¥/domino90se.eflab.local:80¥/Xpages¥/ZipCode.nsf¥/api¥/data¥/documents¥/unid¥/3D50EEFC6D5ECA1349257B8C00135AAB"
}
]

©2013 ef Co., Ltd. All rights Reserved.

- 6-
e f f e c t

f o r c e

Notes/Dominoでの設定方法


Dominoディレクトリ
 サーバ文書を編集モードで開く。
 [インターネットプロトコル]-[Domino Web Engine]タブ

を開く。
 「Domino アクセスサービス」の「有効なサービス」
に”Data”と入力する。
 サーバ文書を保存する。
 サーバコンソールで
tell http refresh

と入力する。

©2013 ef Co., Ltd. All rights Reserved.

- 7-
e f f e c t

f o r c e

Notes/Dominoでの設定方法


Notesアプリケーション-その1
 サービスを適⽤したいノーツアプリケーションの「データ

ベースプロパティ」を開く。
 一番右の[詳細]タブを開く。
 「IBM Domino データサー
ビスを許可」の値を「ビュー
と文書」に変更する。

©2013 ef Co., Ltd. All rights Reserved.

- 8-
e f f e c t

f o r c e

Notes/Dominoでの設定方法


Notesアプリケーション-その2
 サービスを適⽤したいノーツアプリケーションの「ビュー」

をDomino Designerで開く。
 ビュープロパティにある右から二番目の[詳細]タブを開く。
 「IBM Domino データサービスの操作を許可」にチェック
をつける。
 ビューを保存する。

©2013 ef Co., Ltd. All rights Reserved.

- 9-
e f f e c t

f o r c e

Notes/Dominoでの設定方法


デモ(動作確認)
 実際のノーツアプリケーションを見て、動作を確認してみま

しょう!

1.ノーツDBのRESTサービスチェック用URL
http://Dominoのホスト名/Xpages/ZipCode.nsf/api/data/collections
2.($All)ビューのチェック用URL
http:// Dominoのホスト名/Xpages/ZipCode.nsf/api/data/collections/unid/ビューのUNID
3.文書のチェック用URL
http:// Dominoのホスト名/Xpages/ZipCode.nsf/api/data/documents/unid/文書のUNID
4.NGのチェック用URL
http:// Dominoのホスト名/Xpages/ZipCode.nsf/api/data/collections/unid/RESTを許可していないビューのUNID
→HTTP403エラーになります。

©2013 ef Co., Ltd. All rights Reserved.

- 10 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 郵便番号を入力したら、当てはまる住所情報を表示する
 事前準備として、「rsTest」(任意)という名前でXPageを作
成する
 「inputText1」という名前で編集ボックスを配置する
 ボタンコントロールを配置して、イベントのonClickにサーバオ
プションを「すべて更新」にする

©2013 ef Co., Ltd. All rights Reserved.

- 11 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 [データアクセス]-[RESTサービス]コントロール
 プロパティビューの「すべてのプロパティ」を下表のとおりに
設定する

№
1

カテゴリ名称
基本

項目名称

値

service

xe:viewItemFileService

2

contentType

application/json

3

databaseName

値を取得したいNotesアプリケーションのファイルパス
(自DBの場合は、空白で良い)

4

defaultColumns

true

5

keys

サーバサイドJavaScriptで、下記の内容を入力する
getComponent("inputText1").getValue()

6

viewName

「databaseName」で指定したNotesアプリケーションに
あるビューの名前

©2013 ef Co., Ltd. All rights Reserved.

- 12 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 [Dojo レイアウト]-[Dojoデータグリッド]コントロール
 プロパティビューの「すべてのプロパティ」を下表のとおりに
設定する

№

カテゴリ名称

項目名称

値

1

データ

storeComponentId

「RESTサービス」コントロールの「ID」名を選択肢か
ら、選択する

2

基本

autoHeight

1
※検索結果を表示する行数を指定している

©2013 ef Co., Ltd. All rights Reserved.

- 13 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 [Dojoレイアウト]-[Dojoデータグリッド列]コントロール
 「Dojoデータグリッド」コントロール内に配置する
 プロパティビューの「すべてのプロパティ」を下表のとおりに
設定する

№

カテゴリ名称

項目名称

値

1

データ

field

JSONのデータを表示するビュー列のプログラム名

2

基本

label

列名として表示したい値

3

形式

width

auto
※データの値によって、自動的に幅を調整してくれる





「Dojoデータグリッド列」コントロールは、必要数分配置する
今回の場合、「郵便番号」「都道府県」「市区町村」「町域
名」の4つ分を配置する

©2013 ef Co., Ltd. All rights Reserved.

- 14 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 設定サンプルは下記の通り

©2013 ef Co., Ltd. All rights Reserved.

- 15 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 設定サンプルは下記の通り

©2013 ef Co., Ltd. All rights Reserved.

- 16 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 設定サンプルは下記の通り

©2013 ef Co., Ltd. All rights Reserved.

- 17 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 設定サンプルは下記の通り

©2013 ef Co., Ltd. All rights Reserved.

- 18 -
e f f e c t

f o r c e

アプリケーションへの組み込み


XPages Extension Libraryを使用した場合
 画面サンプルは下記の通り

©2013 ef Co., Ltd. All rights Reserved.

- 19 -
e f f e c t

f o r c e

アプリケーションへの組み込み


クライアントJavaScriptを使用した場合
 XPageに特別なコントロールを配置する必要はな

い
 REST APIを使って、JSONデータを取得するため
のJavaScriptを記述する
 必要な情報は下記の通り




エンドポイント(endpoint)というURL情報
JSONから必要なデータを取得してくるための検索
⽤URLパラメータ

©2013 ef Co., Ltd. All rights Reserved.

- 20 -
e f f e c t

f o r c e

アプリケーションへの組み込み
クライアントJavaScriptを使用した場合


行

コード

1 // 送信先
2 var svn = "http://domino90se.eflab.local";
3 var dbn = "Xpages/ZipCode.nsf";
4 var endpoint = "/api/data/collections/unid/D76B3FEBE958BECF49257B8C00037E9D";
5

エンドポイントのURL
全JSONデータが表示される

6 // 入力した郵便番号
7 var skey = document.getElementById( "#{id:zip71}" ).value;
8
9 // URLを生成
10 var url = svn + "/" + dbn + endpoint + "?search=FIELD zip7 CONTAINS " + encodeURI(skey);
11

?search以降が検索用URLパ
ラメータ

12 // XMLHttpRequestを作成
13 try {
14

// Netscape, Firefoxなど

15

xmlhttp = new XMLHttpRequest();

16 } catch (e){
17
18

try {
xmlhttp = new ActiveXObject ( "Msxml2.XMLHTTP" );

©2013 ef Co., Ltd. All rights Reserved.

// IE

- 21 -
e f f e c t

f o r c e

アプリケーションへの組み込み


クライアントJavaScriptを使用した場合

行

コード

19

} catch (e){

20

try {

21

xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" );

22

} catch (e){

23

// XMLHttpRequestの作成に失敗

24
25

// IE

}
}

26 }
27
28 // レスポンスを受け取った時に呼ばれるメソッドを指定
29 xmlhttp.onreadystatechange = method1;

30 xmlhttp.open( 'GET', url, true );
31 xmlhttp.setRequestHeader ( "Content-Type","text/json; charset=utf-8" );

RESTを使ったhttp通信

32
33 // RESTで送信
34 xmlhttp.send();
35
36

©2013 ef Co., Ltd. All rights Reserved.

- 22 -
e f f e c t

f o r c e

アプリケーションへの組み込み


クライアントJavaScriptを使用した場合

行

コード

37 function method1() {
38

// レスポンスの結果が正常の場合は、解析処理を行う

39

if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) {

40

var ret = xmlhttp.responseText;

41

var obj = JSON.parse( ret );

42

RESTのコールバック関数

43

document.getElementById( "#{id:prefectures1}" ).value= obj[0]['Prefectures'];

44

document.getElementById( "#{id:cities1}" ).value= obj[0]['Cities'];

45

document.getElementById( "#{id:address1}" ).value= obj[0]['Address'];

46

}

47 }

©2013 ef Co., Ltd. All rights Reserved.

- 23 -
e f f e c t

f o r c e

アプリケーションへの組み込み


クライアントJavaScriptを使用した場合
 画面サンプルは下記の通り

©2013 ef Co., Ltd. All rights Reserved.

- 24 -
e f f e c t

f o r c e

まとめ


Notes/DominoでRESTを利用する意味
 Notesアプリケーションのデータを他のWebシステムで動的

に再利⽤することが可能


従来は、CSVやExcel等の静的な受け渡しのみだった(はず)

 他のWebシステムのデータを、XPagesを使うことにより、

Notes/Dominoで簡単に再利⽤することが可能


従来はJavaを使うといった高度な技術が必要だった

©2013 ef Co., Ltd. All rights Reserved.

- 25 -
e f f e c t

f o r c e

Q&A


質問ありますか?
 質問があれば、画面右側のチャットで、「Masahiko Miyo」

あてに送ってください。

©2013 ef Co., Ltd. All rights Reserved.

- 26 -
e f f e c t

f o r c e

自己紹介
今回のセッションに関するお問い合わせは、↓こちらまで↓
御代 政彦(みよ まさひこ)
Twitter:@guylocke
Facebook:guylocke34
ブログ:のおつ(http://guylocke.blogspot.jp)

XPagesはもちろん、Notes/Dominoに関する営業的なお問い合わせは、
株式会社エフ
ef-info@effect-force.co.jp
まで!
1. Dominoの構築、運⽤サポート
2. Notes/Dominoアドオン製品の開発
3. 社内で利⽤するNotes アプリケーションの設計、開発
等、etc…

©2013 ef Co., Ltd. All rights Reserved.

- 27 -
e f f e c t

f o r c e

ご清聴ありがとうございました
本日のXPagesDayは、
当セッションをもって終了です。
明日以降も多くのセッションがあるので、
ご期待ください!
※11/8(金)は、
オフラインでのセミナー&懇親会もあります。
今日、質問できなくても「Ask the “X”perts」で
質問できますので、奮ってご参加ください!
©2013 ef Co., Ltd. All rights Reserved.

- 28 -

XPagesでRESTを使ってみたら、こんなんだった

  • 1.
  • 2.
    e f fe c t f o r c e 免責事項について(お約束です)  本資料は、個人的な見解によるものです。情報の内容に ついては万全を期しておりますが、その内容を保証する ものではありません。  本資料の情報は、使⽤先の責任において使⽤されるべき ものであることを、あらかじめご了承ください。  執筆者の承諾なしに、コピー、複製、他のメディアに転 載する事はご遠慮ください。  当資料に記載された製品名または会社名はそれぞれの各 社の商標または登録商標です。 ©2013 ef Co., Ltd. All rights Reserved. - 2-
  • 3.
    e f fe c t f o r c e アジェンダ  RESTとは?  RESTサービス  Notes/DominoでのRESTサービス  JSONについて  Notes/Dominoでの設定方法  Dominoディレクトリ  Notesアプリケーション  デモ(動作確認)  アプリケーションへの組み込み  XPages Extension Libraryを使⽤した場合  クライアントJavaScriptを使⽤した場合  Q&A ©2013 ef Co., Ltd. All rights Reserved. - 3-
  • 4.
    e f fe c t f o r c e RESTとは?  RESTサービス  正式名称は、「REpresentational State Transfer」  直訳すると、「具象的な状態の転送」(よく分からん・・・)  パラメータを指定して特定のURLにHTTPでアクセスすると、 狭義の意味としては、XMLで記述されたメッセージが送られて くるインターフェースを指す。  HTTP ベースの軽量なWeb API を提供している  データにはXML やJSON などの形式を利⽤  HTTP のGET/POST/PUT/DELETE メソッドでCRUD 操作を 実現  CRUD…Create(作成)、 Read(読み込み)、 Update(更 新)、 Delete(削除)のこと ©2013 ef Co., Ltd. All rights Reserved. - 4-
  • 5.
    e f fe c t f o r c e RESTとは?  Notes/DominoでのRESTサービス  Domino上のNotesアプリケーションへHTTPプロトコルを利 ⽤してアクセスするためのサービス  Notesアプリケーション、ビュー、フォルダ、文書にアクセ ス可能  サーバ単位、アプリケーション単位で制御が可能  データの作成、読込、更新、削除(CRUD)をサポート  データフォーマットに、JavaScript からの操作が効率的な JSONを採⽤ ※「テクてくロータス 2012年3月度」資料より抜粋 ©2013 ef Co., Ltd. All rights Reserved. - 5-
  • 6.
    e f fe c t f o r c e RESTとは?  JSONについて  正式名称は、「JavaScript Object Notation」  JavaScriptにおけるオブジェクトの表記法をベースとした軽 量なデータ記述言語である。  JavaScript専⽤ではなく、様々なソフトウェア間でデータの受 け渡しができるように設計されている  書式はXMLに比べて、かなり簡略化されている。  オブジェクトは{}で囲む  配列は[]で囲む  オブジェクトの要素は、:で区切る 【JSONデータのサンプル】 [ { "@modified":"2013-06-16T03:37:44Z", "@unid":"3D50EEFC6D5ECA1349257B8C00135AAB", "@href":"http:¥/¥/domino90se.eflab.local:80¥/Xpages¥/ZipCode.nsf¥/api¥/data¥/documents¥/unid¥/3D50EEFC6D5ECA1349257B8C00135AAB" } ] ©2013 ef Co., Ltd. All rights Reserved. - 6-
  • 7.
    e f fe c t f o r c e Notes/Dominoでの設定方法  Dominoディレクトリ  サーバ文書を編集モードで開く。  [インターネットプロトコル]-[Domino Web Engine]タブ を開く。  「Domino アクセスサービス」の「有効なサービス」 に”Data”と入力する。  サーバ文書を保存する。  サーバコンソールで tell http refresh と入力する。 ©2013 ef Co., Ltd. All rights Reserved. - 7-
  • 8.
    e f fe c t f o r c e Notes/Dominoでの設定方法  Notesアプリケーション-その1  サービスを適⽤したいノーツアプリケーションの「データ ベースプロパティ」を開く。  一番右の[詳細]タブを開く。  「IBM Domino データサー ビスを許可」の値を「ビュー と文書」に変更する。 ©2013 ef Co., Ltd. All rights Reserved. - 8-
  • 9.
    e f fe c t f o r c e Notes/Dominoでの設定方法  Notesアプリケーション-その2  サービスを適⽤したいノーツアプリケーションの「ビュー」 をDomino Designerで開く。  ビュープロパティにある右から二番目の[詳細]タブを開く。  「IBM Domino データサービスの操作を許可」にチェック をつける。  ビューを保存する。 ©2013 ef Co., Ltd. All rights Reserved. - 9-
  • 10.
    e f fe c t f o r c e Notes/Dominoでの設定方法  デモ(動作確認)  実際のノーツアプリケーションを見て、動作を確認してみま しょう! 1.ノーツDBのRESTサービスチェック用URL http://Dominoのホスト名/Xpages/ZipCode.nsf/api/data/collections 2.($All)ビューのチェック用URL http:// Dominoのホスト名/Xpages/ZipCode.nsf/api/data/collections/unid/ビューのUNID 3.文書のチェック用URL http:// Dominoのホスト名/Xpages/ZipCode.nsf/api/data/documents/unid/文書のUNID 4.NGのチェック用URL http:// Dominoのホスト名/Xpages/ZipCode.nsf/api/data/collections/unid/RESTを許可していないビューのUNID →HTTP403エラーになります。 ©2013 ef Co., Ltd. All rights Reserved. - 10 -
  • 11.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  郵便番号を入力したら、当てはまる住所情報を表示する  事前準備として、「rsTest」(任意)という名前でXPageを作 成する  「inputText1」という名前で編集ボックスを配置する  ボタンコントロールを配置して、イベントのonClickにサーバオ プションを「すべて更新」にする ©2013 ef Co., Ltd. All rights Reserved. - 11 -
  • 12.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  [データアクセス]-[RESTサービス]コントロール  プロパティビューの「すべてのプロパティ」を下表のとおりに 設定する № 1 カテゴリ名称 基本 項目名称 値 service xe:viewItemFileService 2 contentType application/json 3 databaseName 値を取得したいNotesアプリケーションのファイルパス (自DBの場合は、空白で良い) 4 defaultColumns true 5 keys サーバサイドJavaScriptで、下記の内容を入力する getComponent("inputText1").getValue() 6 viewName 「databaseName」で指定したNotesアプリケーションに あるビューの名前 ©2013 ef Co., Ltd. All rights Reserved. - 12 -
  • 13.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  [Dojo レイアウト]-[Dojoデータグリッド]コントロール  プロパティビューの「すべてのプロパティ」を下表のとおりに 設定する № カテゴリ名称 項目名称 値 1 データ storeComponentId 「RESTサービス」コントロールの「ID」名を選択肢か ら、選択する 2 基本 autoHeight 1 ※検索結果を表示する行数を指定している ©2013 ef Co., Ltd. All rights Reserved. - 13 -
  • 14.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  [Dojoレイアウト]-[Dojoデータグリッド列]コントロール  「Dojoデータグリッド」コントロール内に配置する  プロパティビューの「すべてのプロパティ」を下表のとおりに 設定する № カテゴリ名称 項目名称 値 1 データ field JSONのデータを表示するビュー列のプログラム名 2 基本 label 列名として表示したい値 3 形式 width auto ※データの値によって、自動的に幅を調整してくれる   「Dojoデータグリッド列」コントロールは、必要数分配置する 今回の場合、「郵便番号」「都道府県」「市区町村」「町域 名」の4つ分を配置する ©2013 ef Co., Ltd. All rights Reserved. - 14 -
  • 15.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  設定サンプルは下記の通り ©2013 ef Co., Ltd. All rights Reserved. - 15 -
  • 16.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  設定サンプルは下記の通り ©2013 ef Co., Ltd. All rights Reserved. - 16 -
  • 17.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  設定サンプルは下記の通り ©2013 ef Co., Ltd. All rights Reserved. - 17 -
  • 18.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  設定サンプルは下記の通り ©2013 ef Co., Ltd. All rights Reserved. - 18 -
  • 19.
    e f fe c t f o r c e アプリケーションへの組み込み  XPages Extension Libraryを使用した場合  画面サンプルは下記の通り ©2013 ef Co., Ltd. All rights Reserved. - 19 -
  • 20.
    e f fe c t f o r c e アプリケーションへの組み込み  クライアントJavaScriptを使用した場合  XPageに特別なコントロールを配置する必要はな い  REST APIを使って、JSONデータを取得するため のJavaScriptを記述する  必要な情報は下記の通り   エンドポイント(endpoint)というURL情報 JSONから必要なデータを取得してくるための検索 ⽤URLパラメータ ©2013 ef Co., Ltd. All rights Reserved. - 20 -
  • 21.
    e f fe c t f o r c e アプリケーションへの組み込み クライアントJavaScriptを使用した場合  行 コード 1 // 送信先 2 var svn = "http://domino90se.eflab.local"; 3 var dbn = "Xpages/ZipCode.nsf"; 4 var endpoint = "/api/data/collections/unid/D76B3FEBE958BECF49257B8C00037E9D"; 5 エンドポイントのURL 全JSONデータが表示される 6 // 入力した郵便番号 7 var skey = document.getElementById( "#{id:zip71}" ).value; 8 9 // URLを生成 10 var url = svn + "/" + dbn + endpoint + "?search=FIELD zip7 CONTAINS " + encodeURI(skey); 11 ?search以降が検索用URLパ ラメータ 12 // XMLHttpRequestを作成 13 try { 14 // Netscape, Firefoxなど 15 xmlhttp = new XMLHttpRequest(); 16 } catch (e){ 17 18 try { xmlhttp = new ActiveXObject ( "Msxml2.XMLHTTP" ); ©2013 ef Co., Ltd. All rights Reserved. // IE - 21 -
  • 22.
    e f fe c t f o r c e アプリケーションへの組み込み  クライアントJavaScriptを使用した場合 行 コード 19 } catch (e){ 20 try { 21 xmlhttp = new ActiveXObject ( "Microsoft.XMLHTTP" ); 22 } catch (e){ 23 // XMLHttpRequestの作成に失敗 24 25 // IE } } 26 } 27 28 // レスポンスを受け取った時に呼ばれるメソッドを指定 29 xmlhttp.onreadystatechange = method1; 30 xmlhttp.open( 'GET', url, true ); 31 xmlhttp.setRequestHeader ( "Content-Type","text/json; charset=utf-8" ); RESTを使ったhttp通信 32 33 // RESTで送信 34 xmlhttp.send(); 35 36 ©2013 ef Co., Ltd. All rights Reserved. - 22 -
  • 23.
    e f fe c t f o r c e アプリケーションへの組み込み  クライアントJavaScriptを使用した場合 行 コード 37 function method1() { 38 // レスポンスの結果が正常の場合は、解析処理を行う 39 if ( xmlhttp.readyState == 4 && xmlhttp.status == 200 ) { 40 var ret = xmlhttp.responseText; 41 var obj = JSON.parse( ret ); 42 RESTのコールバック関数 43 document.getElementById( "#{id:prefectures1}" ).value= obj[0]['Prefectures']; 44 document.getElementById( "#{id:cities1}" ).value= obj[0]['Cities']; 45 document.getElementById( "#{id:address1}" ).value= obj[0]['Address']; 46 } 47 } ©2013 ef Co., Ltd. All rights Reserved. - 23 -
  • 24.
    e f fe c t f o r c e アプリケーションへの組み込み  クライアントJavaScriptを使用した場合  画面サンプルは下記の通り ©2013 ef Co., Ltd. All rights Reserved. - 24 -
  • 25.
    e f fe c t f o r c e まとめ  Notes/DominoでRESTを利用する意味  Notesアプリケーションのデータを他のWebシステムで動的 に再利⽤することが可能  従来は、CSVやExcel等の静的な受け渡しのみだった(はず)  他のWebシステムのデータを、XPagesを使うことにより、 Notes/Dominoで簡単に再利⽤することが可能  従来はJavaを使うといった高度な技術が必要だった ©2013 ef Co., Ltd. All rights Reserved. - 25 -
  • 26.
    e f fe c t f o r c e Q&A  質問ありますか?  質問があれば、画面右側のチャットで、「Masahiko Miyo」 あてに送ってください。 ©2013 ef Co., Ltd. All rights Reserved. - 26 -
  • 27.
    e f fe c t f o r c e 自己紹介 今回のセッションに関するお問い合わせは、↓こちらまで↓ 御代 政彦(みよ まさひこ) Twitter:@guylocke Facebook:guylocke34 ブログ:のおつ(http://guylocke.blogspot.jp) XPagesはもちろん、Notes/Dominoに関する営業的なお問い合わせは、 株式会社エフ ef-info@effect-force.co.jp まで! 1. Dominoの構築、運⽤サポート 2. Notes/Dominoアドオン製品の開発 3. 社内で利⽤するNotes アプリケーションの設計、開発 等、etc… ©2013 ef Co., Ltd. All rights Reserved. - 27 -
  • 28.
    e f fe c t f o r c e ご清聴ありがとうございました 本日のXPagesDayは、 当セッションをもって終了です。 明日以降も多くのセッションがあるので、 ご期待ください! ※11/8(金)は、 オフラインでのセミナー&懇親会もあります。 今日、質問できなくても「Ask the “X”perts」で 質問できますので、奮ってご参加ください! ©2013 ef Co., Ltd. All rights Reserved. - 28 -