SlideShare una empresa de Scribd logo
1 de 31
B-3 
XPagesでRESTを使ってみたら、 
こんなんだったPartⅡ 
株式会社エフマネージャー 
御代政彦(みよまさひこ)
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
免責事項について(お約束です) 
本資料は、個人的な見解によるものです。情報の内容に 
ついては万全を期しておりますが、その内容を保証する 
ものではありません。 
本資料の情報は、使⽤先の責任において使⽤されるべき 
ものであることを、あらかじめご了承ください。 
執筆者の承諾なしに、コピー、複製、他のメディアに転 
載する事はご遠慮ください。 
当資料に記載された製品名または会社名はそれぞれの各 
社の商標または登録商標です。 
- 2 -
自己紹介 
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
今回のセッションに関するお問い合わせは、↓こちらまで↓ 
御代政彦(みよまさひこ) 
2011年12月~2014年12月までIBM Championをやってます 
Twitter:@guylocke 
Facebook:guylocke34 
ブログ:http://guylocke.blogspot.jp 
- 3 - 
XPagesはもちろん、Notes/Dominoに関する営業的なお問い合わせは、 
株式会社エフ 
ef-info@effect-force.co.jp 
まで! 
1. Dominoの構築、運⽤サポート 
2. Notes/Dominoアドオン製品の開発 
3. 社内で利⽤するNotes アプリケーションの設計、開発 
等、etc… 
のおつnotes 検索
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
Q&A 
 質問は・・・ 
 質問があれば、画面右側のチャットで、「Masahiko Miyo」 
あてに送ってください。 
 セッションの最後にまとめてご回答します。 
- 4 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
アジェンダ 
 昨年の復習 
 Notes/DominoでのRESTサービス 
 Dominoディレクトリの設定 
 Notesアプリケーションの設定 
 Extension Libraryを使⽤したサンプル 
 Dominoディレクトリの設定(拡張) 
 Data以外のDominoアクセスサービス 
 Dominoアクセスサービスのサンプル 
 コアサービス及びデータサービス 
 カレンダーサービス 
 メールサービス、空き時間サービス 
 XPagesへの応用 
 まとめ 
 参考 
 Q&A 
- 5 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
- 6 - 
まずは、昨年の復習から・・・
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
昨年の復習 
 Notes/DominoでのRESTサービス 
 Domino上のNotesアプリケーションへHTTPプロトコルを利 
⽤してアクセスするためのサービス 
 Notesアプリケーション、ビュー、フォルダ、文書にアクセ 
ス可能 
 データの作成、読込、更新、削除(CRUD)をサポート 
 データフォーマットに、JavaScript からの操作が効率的な 
JSONを採⽤ 
- 7 - 
【JSONデータのサンプル】 
[ 
{ 
"@modified":"2013-06-16T03:37:44Z", 
"@unid":"3D50EEFC6D5ECA1349257B8C00135AAB", 
"@href":"http://domino90se.eflab.local:80/XPages/ZipCode.nsf/api/data/documents/unid/3D50EEFC6D5ECA1349257B 
8C00135AAB" 
} 
]
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
昨年の復習 
 Dominoディレクトリの設定 
 サーバ文書を編集モードで開きます。 
 [インターネットプロトコル]-[Domino Web Engine]タブ 
を開きます。 
 「Domino アクセスサービス」の「有効なサービス」 
に”Data”と入力します。 
 サーバ文書を保存します。 
 サーバコンソールで 
tell http refresh 
と入力します。 
- 8 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
昨年の復習 
 Notesアプリケーションの設定(その1) 
 サービスを適⽤したいノーツアプリケーションの「データ 
ベースプロパティ」を開きます。 
 一番右の[詳細]タブを開きます。 
 「IBM Domino データサービス 
を許可」の値を「ビューと文書」 
に変更します。 
- 9 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
昨年の復習 
 Notesアプリケーションの設定(その2) 
 サービスを適⽤したいノーツアプリケーションの「ビュー」 
をDomino Designerで開きます。 
 ビュープロパティにある右から二番目の[詳細]タブを開きま 
す。 
 「IBM Domino データサービスの操作を許可」にチェック 
をつけます。 
 ビューを保存します。 
- 10 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
昨年の復習 
 Extension Libraryを使用したサンプル 
 郵便番号検索アプリ(RESTサービス、Dojoデータグリッド、 
Dojoデータグリッド列等を使⽤して製造) 
- 11 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
昨年の復習・・・ちょっと脱線 
 Dojoグリッドで直セル編集、保存したい 
な・・・ 
 郵便番号検索アプリのDojoデータグリッド、表形式でExcel 
というかノーツのビューみたいですね。 
 ここで編集→保存なんてできると、格好いいですよね。 
 出来るんです! 
 「Dojo データグリッド列」コントロールの「editable」プロパ 
ティを”true”にすると、ダブルクリックで編集可能状態になり 
ます。 
 「ボタン」コントロールを配置して、クライアントJavaScript 
で「RESTサービス」名.save()と書くだけ! 
例)restService1.save() 
※ 表示しているデータの内容によっては、この限りではありません。 
- 12 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
- 13 - 
それでは、本題へと・・・
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
Dominoディレクトリの設定(拡張) 
 Data以外のDominoアクセスサービス 
 サーバ文書の「Domino アクセスサービス」の「有効な 
サービス」に設定できるサービス名 
 現時点で利⽤可能と判明しているのは「Data, TravelerAdmin, 
Mail, Calendar, FreeBusy」です。 
 「TravelerAdmin」はIBM Notes Travelerをインストールす 
ると、自動で設定されます。 
 サーバ文書の保存後はサーバコンソールで 
tell http refresh 
と入力する。 
- 14 - 
IBM Domino 9.0.1以降のみで有効 
Extension Library 9.0が導入されている場合、正常に 
動作しないので注意!
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
Dominoアクセスサービスのサンプル 
 コアサービス 
1. Dominoサーバーで許可されているData Serviceの種類を 
JSONで返す 
http://Dominoのホスト名/api 
2. コアサービスのリソースを返す 
http://Dominoのホスト名/api/core/ 
3. ログインユーザのパスワード最終変更日等の情報を返す 
http://Dominoのホスト名/api/core/pwstats 
4. DominoサーバーのNotesアプリケーションの一覧(タイト 
ル、ファイル名、レプリカID等)を返す 
http:// Dominoのホスト名/api/data 
5. ビューのチェック⽤URL 
http:// Dominoのホスト名/ノーツアプリケーションファイル名 
/api/data/collections/unid/ビューのUNID?page=n 
※?page=nは複数ページにまたがる場合に利⽤可能(表示したいページ数を指定する) 
- 15 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
Dominoアクセスサービスのサンプル 
 カレンダーサービス(9.0.1~) 
1. ログインしたユーザのカレンダーに関するData Serviceの 
URIを返す 
http:// Dominoのホスト名/api/calendar 
2. 指定したユーザのカレンダーのイベントの一覧を返す 
http://Dominoのホスト名/メールDB名/api/calendar/events 
3. 指定したユーザの会議招集メール(返信前の文書のみ)の 
一覧を返す 
http://Dominoのホスト名/メールDB名/api/calendar/invitations 
4. 指定したカレンダー文書の内容を返す 
http://Dominoのホスト名/メールDB名/api/calendar/events/文書 
UNID-Lotus_Notes_Generated 
5. 指定した会議招集メールの内容を返す 
http://Dominoのホスト名/メールDB名/api/calendar/notices/文書UNID 
- 16 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
Dominoアクセスサービスのサンプル 
 メールサービス(Extension Library) 
1. ログインしたユーザのメールに関するData ServiceのURI 
を返す 
http:// Dominoのホスト名/api/mail 
2. 指定したメールDBの受信ボックスの文書一覧を返す 
http://Dominoのホスト名/メールDB名/api/mail/inbox 
3. 指定したメール文書の内容を返す 
http://Dominoのホスト名/メールDB名/api/mail/messages/文書UNID 
空き時間情報サービス(Extension Library) 
1.空き時間情報を検索するData ServiceのURIを返す 
http://Dominoのホスト名/api/freebusy 
2.指定したユーザの空き時間情報を返す 
http://Dominoのホスト名/api/freebusy/busytime?name=ユーザ名 
- 17 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 XPages Extension Libraryを使用した場合 
 カレンダービューをXPagesで実現してみる(1) 
 「calendarJson」(任意)という名前でXPageを作成する 
 [データアクセス]-[RESTサービス]コントロールを以下の内容 
で設定 
 [iNotes]-[iNotesカレンダー]コントロールを以下の内容で設 
定 
- 18 - 
№ カテゴリ名称項目名称値 
1 基本pathInfo events(任意の値) 
2 service xe:calendarJsonLegacyService 
3 contentType application/json 
4 databaseName 値を取得したいメールDBのファイルパス 
5 viewName ($Calendar) 
№ カテゴリ名称項目名称値 
1 基本storeComponentId RESTサービスコントロールのID名
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 XPages Extension Libraryを使用した場合 
 カレンダービューをXPagesで実現してみる(2) 
 「notesCalStore」(任意)という名前でXPageを作成する 
 [iNotes]-[NotesEカレンダーストア]コントロールを以下の内 
容で設定 
 [iNotes]-[iNotesカレンダー]コントロールを以下の内容で設 
定 
- 19 - 
№ カテゴリ名称項目名称値 
1 基本databaseName 値を取得したいメールDBのファイルパス 
№ カテゴリ名称項目名称値 
1 基本storeComponentId RESTサービスコントロールのID名 
※こちらはRESTではなく、URLコマンドの「ReadViewEntries」でカレンダービューのデータを取得していますが、見た目は 
iNotesのカレンダーにかなり近くなります。
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 XPages Extension Libraryを使用した場合 
 メールの受信ボックスをXPagesで実現してみる 
 「mailJson」(任意)という名前でXPageを作成する 
 [データアクセス]-[RESTサービス]コントロールを以下の内容 
で設定 
- 20 - 
№ カテゴリ名称項目名称値 
1 基本pathInfo inbox 
2 service xe:viewJsonService 
3 contentType application/json 
4 databaseName 値を取得したいメールDBのファイルパス 
5 var mailData 
6 viewName ($Inbox) 
7 columns 詳細は次ページ参照
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 XPages Extension Libraryを使用した場合 
 メールの受信ボックスをXPagesで実現してみる 
 [RESTサービス]コントロールの”columns”に以下の4つのプ 
ロパティを追加する 
- 21 - 
№ 名称項目名称値 
1 restViewColumn[0] columnName $93 
2 name Sender 
3 restViewColumn[1] columnName $73 
4 name Subject 
5 restViewColumn[2] columnName $70 
6 name DeliveryDate 
7 restViewColumn[3] name Size 
8 value 
var dsize = mailData.getColumnValue( "$106" ); 
return Math.round( dsize / 1024 ) + "K";
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 XPages Extension Libraryを使用した場合 
 メールの受信ボックスをXPagesで実現してみる 
 [iNotes]-[iNotesリストビュー]コントロールを以下の内容で 
設定 
 [iNotes]-[iNotesリストビュー列]コントロールを[iNotesリ 
ストビュー]コントロール配下に以下の内容で設定 
 [iNotesリストビュー列]は4つ配置する 
- 22 - 
№ カテゴリ名称項目名称値 
1 基本storeComponentId RESTサービスコントロールのID名 
№ カテゴリ名称項目名称値 
1 基本columnName Sender Subject DeliveryDate Size 
2 columnTitle 送信者件名日付サイズ
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 XPages Extension Libraryを使用した場合 
 メールの受信ボックスをXPagesで実現してみる 
 ソースで見てみるとこんな感じ… 
- 23 - 
<xe:restService id="restService1" pathInfo="inbox"> 
<xe:this.service> 
<xe:viewJsonService databaseName=“メールファイルのパス“ viewName="($Inbox)" var="mailData" contentType="application/json"> 
<xe:this.columns> 
<xe:restViewColumn columnName="$93" name="Sender"></xe:restViewColumn> 
<xe:restViewColumn columnName="$73" name="Subject"></xe:restViewColumn> 
<xe:restViewColumn name="DeliveryDate“ columnName="$70"></xe:restViewColumn> 
<xe:restViewColumn name="Size"> 
<xe:this.value><![CDATA[#{javascript:var dsize = mailData.getColumnValue( "$106" ); 
return Math.round( dsize / 1024 ) + "K";}]]></xe:this.value> 
</xe:restViewColumn> 
</xe:this.columns> 
</xe:viewJsonService> 
</xe:this.service> 
</xe:restService> 
<xe:listView id="listView1" storeComponentId="restService1“ style="font-size:14pt;width:100%"> 
<xe:listViewColumn id="listViewColumn1“ columnTitle="送信者" columnName="Sender"></xe:listViewColumn> 
<xe:listViewColumn id="listViewColumn2“ columnName="Subject" columnTitle="件名" width="700px"></xe:listViewColumn> 
<xe:listViewColumn id="listViewColumn3“ columnName="DeliveryDate" columnTitle="日付"></xe:listViewColumn> 
<xe:listViewColumn id="listViewColumn4“ columnTitle="サイズ" columnName="Size"></xe:listViewColumn> 
</xe:listView>
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 デモ(動作確認) 
 Dataサービス以外の動作も確認してみましょう! 
- 24 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 デモ(お・ま・け) 
 あれ??? 
 私の環境は「IBM Domino 9.0.1」なんですが… 
- 25 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 おまけ(XAgentのサンプル) 
 XAgentとぐるなびWebサービスを使⽤して、JSONデータ 
を取得する 
 XAgentのページサンプル 
 Dominoサーバをクライアントとして他のWebサービスからXML/JSONを取得して、xspとして 
展開する。これにより、別ドメインの情報を取得することが可能になる 
- 26 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
XPagesへの応⽤ 
 おまけ(WebサービスをXPagesで利用) 
 XAgentで取得したデータを利⽤してXPagesに組み込んだサ 
ンプル 
 [ぐるなびAPI検索]ボタンのプログラムは昨年紹介したCSJSを 
流⽤しています。 
- 27 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
まとめ 
 Notes/DominoでRESTを利用する 
 Notesアプリケーションのデータを他のWebシステムで動的 
に再利⽤することが可能 
 従来は、CSVやExcel等の静的な受け渡しのみだった 
 他のWebシステムのデータをXPagesを使うことにより、 
Notes/Dominoで利⽤することが可能 
 JavaScriptを利⽤出来るようになったので敷居が少し低くなっ 
た 
 Dataに加えて、メール、カレンダーや空き時間情報等も利 
用できる 
 参照程度であれば、簡単に取得できるので、アプリケーション 
の幅が広がる! 
- 28 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
まとめ 
 RESTを利用する際の注意事項 
 同一オリジンのサイト(プロトコル、ドメイン、ポート番号 
が同じである)でないと、リソースへのアクセスができない。 
 Cross-Origin Resource Sharing(CORS)の有効化が必要 
 JSONP(JSON with padding)を利⽤することでも回避可能 
 XAgentを使ってサーバー経由で取得してもよい 
 機密事項を取り扱う場合は専⽤のサーバを⽤意して、SSL 
(HTTPS)通信で提供すること 
 社外に公開するような場合は特に注意! 
 ビューに表示する内容はよく選定すること! 
- 29 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
参考 
 DAS/REST関連のWebサイト 
 IBM Domino Access Services 9.0.1 
 IBM Notes and Domino Application Development wiki内の 
サイト(英語) 
http://ibm.co/1wGMxzh 
 デモで利用したツール 
 Firefox 
 RESTサービスの結果をブラウザ上で表示可能(日本語は 
Unicodeでエンコード表示される) 
http://www.mozilla.jp/ 
 REST Client 
 Firefoxのアドオン。Response Headersの詳細も確認できる。 
日本語はUnicodeをデコード表示してくれるので分かり易い。 
http://restclient.net/ 
- 30 -
©2014 ef Co., Ltd. All rights Reserved. 
e f f e c t f o r c e 
- 31 - 
ご清聴ありがとうございました 
次は、皆さんお待ちかね 
『どこよりも早いXPages 最新情報』 
のセッションです! 
乞うご期待!! 
私も拝聴します!

Más contenido relacionado

La actualidad más candente

FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -Akio Katayama
 
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
SolidFire を Kibana(ELK Stack)で可視化(需要予測)するSolidFire を Kibana(ELK Stack)で可視化(需要予測)する
SolidFire を Kibana(ELK Stack)で可視化(需要予測)するKensuke Maeda
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)Ryota Watabe
 
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかHiroshi Tokumaru
 
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015Toru Yamaguchi
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装infinite_loop
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Tomohito Adachi
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016Rui Hirokawa
 
PHPの今とこれから 2013
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013Rui Hirokawa
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったかHiroshi Tokumaru
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1Fumito Mizuno
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5sleepy_yoshi
 

La actualidad más candente (13)

1MB
1MB1MB
1MB
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
SolidFire を Kibana(ELK Stack)で可視化(需要予測)するSolidFire を Kibana(ELK Stack)で可視化(需要予測)する
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
 
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
OSS-DB Silver ポイント解説セミナー ~SQL編~ (PostgreSQL9.0)
 
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのかSecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか
 
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
OAuth 2.0 Web Messaging Response Mode - OpenID Summit Tokyo 2015
 
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
 
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
PHPの今とこれから 2013
PHPの今とこれから 2013PHPの今とこれから 2013
PHPの今とこれから 2013
 
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
 
FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1FuelPHP Osu Nagoya vol.1
FuelPHP Osu Nagoya vol.1
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
 

Similar a XPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡ

XPagesでRESTを使ってみよう
XPagesでRESTを使ってみようXPagesでRESTを使ってみよう
XPagesでRESTを使ってみようMasahiko Miyo
 
とあるCocos2dx入門編
とあるCocos2dx入門編とあるCocos2dx入門編
とあるCocos2dx入門編kumin1030
 
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックkumo2010
 
Lotus iNotes をカスタマイズしてみよう
Lotus iNotes をカスタマイズしてみようLotus iNotes をカスタマイズしてみよう
Lotus iNotes をカスタマイズしてみようMasashi Miyazaki
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報dstn
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3日本Javaユーザーグループ
 
About OpenStack DBaas (trove)
About OpenStack DBaas (trove)About OpenStack DBaas (trove)
About OpenStack DBaas (trove)Ikuo Kumagai
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京Yu Ito
 
Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03博康 三井
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪Yu Ito
 
cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)iret, Inc.
 
XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!Atsushi Sato
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識Daiyu Hatakeyama
 
Lolipop server
Lolipop serverLolipop server
Lolipop serverJun Chiba
 
Enterprise Manager 3.0
Enterprise Manager 3.0Enterprise Manager 3.0
Enterprise Manager 3.0Yuji Fujita
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) Akihiro Kuwano
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタTakashi Kanai
 

Similar a XPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡ (20)

XPagesでRESTを使ってみよう
XPagesでRESTを使ってみようXPagesでRESTを使ってみよう
XPagesでRESTを使ってみよう
 
とあるCocos2dx入門編
とあるCocos2dx入門編とあるCocos2dx入門編
とあるCocos2dx入門編
 
HCL Domino REST API 利用ガイド
HCL Domino REST API 利用ガイドHCL Domino REST API 利用ガイド
HCL Domino REST API 利用ガイド
 
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニックTech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
Tech Ed 2010 Japan T1-310 Microsoft Online Services 展開時の実践テクニック
 
Lotus iNotes をカスタマイズしてみよう
Lotus iNotes をカスタマイズしてみようLotus iNotes をカスタマイズしてみよう
Lotus iNotes をカスタマイズしてみよう
 
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報20120822_dstn技術交流会_dstnのご紹介と最新技術情報
20120822_dstn技術交流会_dstnのご紹介と最新技術情報
 
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
メッセージングプラットフォーム Zimbra の紹介とその活用術 - JJUG ナイトセミナー2013/3
 
G0042 h
G0042 hG0042 h
G0042 h
 
About OpenStack DBaas (trove)
About OpenStack DBaas (trove)About OpenStack DBaas (trove)
About OpenStack DBaas (trove)
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
 
Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03Try! cms2012標準マニュアル2013 03
Try! cms2012標準マニュアル2013 03
 
Clrh 110716 wcfwf
Clrh 110716 wcfwfClrh 110716 wcfwf
Clrh 110716 wcfwf
 
シラサギハンズオン 大阪
シラサギハンズオン 大阪シラサギハンズオン 大阪
シラサギハンズオン 大阪
 
cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)cloudpack負荷職人結果レポート(サンプル)
cloudpack負荷職人結果レポート(サンプル)
 
XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!
 
エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識エンジニアのための Azure 基礎知識
エンジニアのための Azure 基礎知識
 
Lolipop server
Lolipop serverLolipop server
Lolipop server
 
Enterprise Manager 3.0
Enterprise Manager 3.0Enterprise Manager 3.0
Enterprise Manager 3.0
 
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい) 泥臭い運用から、プログラマブルインフラ構築(に行きたい)
泥臭い運用から、プログラマブルインフラ構築(に行きたい)
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 

Más de Masahiko Miyo

Notes/Domino 開発tipsサービスについて
Notes/Domino 開発tipsサービスについてNotes/Domino 開発tipsサービスについて
Notes/Domino 開発tipsサービスについてMasahiko Miyo
 
私が作成したVoltアプリの紹介
私が作成したVoltアプリの紹介私が作成したVoltアプリの紹介
私が作成したVoltアプリの紹介Masahiko Miyo
 
Col113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i createdCol113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i createdMasahiko Miyo
 
Voltアプリをバージョンアップ!
Voltアプリをバージョンアップ!Voltアプリをバージョンアップ!
Voltアプリをバージョンアップ!Masahiko Miyo
 
初心者向けNotes/Dominoの開発テクニック
初心者向けNotes/Dominoの開発テクニック初心者向けNotes/Dominoの開発テクニック
初心者向けNotes/Dominoの開発テクニックMasahiko Miyo
 
Domino Voltアプリケーションを作成してみたよ!
Domino Voltアプリケーションを作成してみたよ!Domino Voltアプリケーションを作成してみたよ!
Domino Voltアプリケーションを作成してみたよ!Masahiko Miyo
 
Nomad アプリも作成してみたよ!
Nomad アプリも作成してみたよ!Nomad アプリも作成してみたよ!
Nomad アプリも作成してみたよ!Masahiko Miyo
 
formBuilderにより フォームを簡単作成(オープンセミナー版)
formBuilderにより フォームを簡単作成(オープンセミナー版)formBuilderにより フォームを簡単作成(オープンセミナー版)
formBuilderにより フォームを簡単作成(オープンセミナー版)Masahiko Miyo
 
対称クラスタの設定と動作確認
対称クラスタの設定と動作確認対称クラスタの設定と動作確認
対称クラスタの設定と動作確認Masahiko Miyo
 
formBuilderによりフォームを簡単作成
formBuilderによりフォームを簡単作成formBuilderによりフォームを簡単作成
formBuilderによりフォームを簡単作成Masahiko Miyo
 
HCL Nomad用アプリケーション プレゼント企画
HCL Nomad用アプリケーション プレゼント企画HCL Nomad用アプリケーション プレゼント企画
HCL Nomad用アプリケーション プレゼント企画Masahiko Miyo
 
三度、おじさんSEはIBM ConnectEDへ行ってきた
三度、おじさんSEはIBM ConnectEDへ行ってきた三度、おじさんSEはIBM ConnectEDへ行ってきた
三度、おじさんSEはIBM ConnectEDへ行ってきたMasahiko Miyo
 

Más de Masahiko Miyo (13)

Notes/Domino 開発tipsサービスについて
Notes/Domino 開発tipsサービスについてNotes/Domino 開発tipsサービスについて
Notes/Domino 開発tipsサービスについて
 
私が作成したVoltアプリの紹介
私が作成したVoltアプリの紹介私が作成したVoltアプリの紹介
私が作成したVoltアプリの紹介
 
Col113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i createdCol113 introducing the hcl domino volt application i created
Col113 introducing the hcl domino volt application i created
 
Voltアプリをバージョンアップ!
Voltアプリをバージョンアップ!Voltアプリをバージョンアップ!
Voltアプリをバージョンアップ!
 
初心者向けNotes/Dominoの開発テクニック
初心者向けNotes/Dominoの開発テクニック初心者向けNotes/Dominoの開発テクニック
初心者向けNotes/Dominoの開発テクニック
 
Domino Voltアプリケーションを作成してみたよ!
Domino Voltアプリケーションを作成してみたよ!Domino Voltアプリケーションを作成してみたよ!
Domino Voltアプリケーションを作成してみたよ!
 
Nomad アプリも作成してみたよ!
Nomad アプリも作成してみたよ!Nomad アプリも作成してみたよ!
Nomad アプリも作成してみたよ!
 
formBuilderにより フォームを簡単作成(オープンセミナー版)
formBuilderにより フォームを簡単作成(オープンセミナー版)formBuilderにより フォームを簡単作成(オープンセミナー版)
formBuilderにより フォームを簡単作成(オープンセミナー版)
 
対称クラスタの設定と動作確認
対称クラスタの設定と動作確認対称クラスタの設定と動作確認
対称クラスタの設定と動作確認
 
formBuilderによりフォームを簡単作成
formBuilderによりフォームを簡単作成formBuilderによりフォームを簡単作成
formBuilderによりフォームを簡単作成
 
HCL Nomad用アプリケーション プレゼント企画
HCL Nomad用アプリケーション プレゼント企画HCL Nomad用アプリケーション プレゼント企画
HCL Nomad用アプリケーション プレゼント企画
 
三度、おじさんSEはIBM ConnectEDへ行ってきた
三度、おじさんSEはIBM ConnectEDへ行ってきた三度、おじさんSEはIBM ConnectEDへ行ってきた
三度、おじさんSEはIBM ConnectEDへ行ってきた
 
サーバー認証
サーバー認証サーバー認証
サーバー認証
 

XPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡ

  • 1. B-3 XPagesでRESTを使ってみたら、 こんなんだったPartⅡ 株式会社エフマネージャー 御代政彦(みよまさひこ)
  • 2. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 免責事項について(お約束です) 本資料は、個人的な見解によるものです。情報の内容に ついては万全を期しておりますが、その内容を保証する ものではありません。 本資料の情報は、使⽤先の責任において使⽤されるべき ものであることを、あらかじめご了承ください。 執筆者の承諾なしに、コピー、複製、他のメディアに転 載する事はご遠慮ください。 当資料に記載された製品名または会社名はそれぞれの各 社の商標または登録商標です。 - 2 -
  • 3. 自己紹介 ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 今回のセッションに関するお問い合わせは、↓こちらまで↓ 御代政彦(みよまさひこ) 2011年12月~2014年12月までIBM Championをやってます Twitter:@guylocke Facebook:guylocke34 ブログ:http://guylocke.blogspot.jp - 3 - XPagesはもちろん、Notes/Dominoに関する営業的なお問い合わせは、 株式会社エフ ef-info@effect-force.co.jp まで! 1. Dominoの構築、運⽤サポート 2. Notes/Dominoアドオン製品の開発 3. 社内で利⽤するNotes アプリケーションの設計、開発 等、etc… のおつnotes 検索
  • 4. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e Q&A  質問は・・・  質問があれば、画面右側のチャットで、「Masahiko Miyo」 あてに送ってください。  セッションの最後にまとめてご回答します。 - 4 -
  • 5. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e アジェンダ  昨年の復習  Notes/DominoでのRESTサービス  Dominoディレクトリの設定  Notesアプリケーションの設定  Extension Libraryを使⽤したサンプル  Dominoディレクトリの設定(拡張)  Data以外のDominoアクセスサービス  Dominoアクセスサービスのサンプル  コアサービス及びデータサービス  カレンダーサービス  メールサービス、空き時間サービス  XPagesへの応用  まとめ  参考  Q&A - 5 -
  • 6. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e - 6 - まずは、昨年の復習から・・・
  • 7. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 昨年の復習  Notes/DominoでのRESTサービス  Domino上のNotesアプリケーションへHTTPプロトコルを利 ⽤してアクセスするためのサービス  Notesアプリケーション、ビュー、フォルダ、文書にアクセ ス可能  データの作成、読込、更新、削除(CRUD)をサポート  データフォーマットに、JavaScript からの操作が効率的な JSONを採⽤ - 7 - 【JSONデータのサンプル】 [ { "@modified":"2013-06-16T03:37:44Z", "@unid":"3D50EEFC6D5ECA1349257B8C00135AAB", "@href":"http://domino90se.eflab.local:80/XPages/ZipCode.nsf/api/data/documents/unid/3D50EEFC6D5ECA1349257B 8C00135AAB" } ]
  • 8. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 昨年の復習  Dominoディレクトリの設定  サーバ文書を編集モードで開きます。  [インターネットプロトコル]-[Domino Web Engine]タブ を開きます。  「Domino アクセスサービス」の「有効なサービス」 に”Data”と入力します。  サーバ文書を保存します。  サーバコンソールで tell http refresh と入力します。 - 8 -
  • 9. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 昨年の復習  Notesアプリケーションの設定(その1)  サービスを適⽤したいノーツアプリケーションの「データ ベースプロパティ」を開きます。  一番右の[詳細]タブを開きます。  「IBM Domino データサービス を許可」の値を「ビューと文書」 に変更します。 - 9 -
  • 10. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 昨年の復習  Notesアプリケーションの設定(その2)  サービスを適⽤したいノーツアプリケーションの「ビュー」 をDomino Designerで開きます。  ビュープロパティにある右から二番目の[詳細]タブを開きま す。  「IBM Domino データサービスの操作を許可」にチェック をつけます。  ビューを保存します。 - 10 -
  • 11. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 昨年の復習  Extension Libraryを使用したサンプル  郵便番号検索アプリ(RESTサービス、Dojoデータグリッド、 Dojoデータグリッド列等を使⽤して製造) - 11 -
  • 12. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 昨年の復習・・・ちょっと脱線  Dojoグリッドで直セル編集、保存したい な・・・  郵便番号検索アプリのDojoデータグリッド、表形式でExcel というかノーツのビューみたいですね。  ここで編集→保存なんてできると、格好いいですよね。  出来るんです!  「Dojo データグリッド列」コントロールの「editable」プロパ ティを”true”にすると、ダブルクリックで編集可能状態になり ます。  「ボタン」コントロールを配置して、クライアントJavaScript で「RESTサービス」名.save()と書くだけ! 例)restService1.save() ※ 表示しているデータの内容によっては、この限りではありません。 - 12 -
  • 13. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e - 13 - それでは、本題へと・・・
  • 14. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e Dominoディレクトリの設定(拡張)  Data以外のDominoアクセスサービス  サーバ文書の「Domino アクセスサービス」の「有効な サービス」に設定できるサービス名  現時点で利⽤可能と判明しているのは「Data, TravelerAdmin, Mail, Calendar, FreeBusy」です。  「TravelerAdmin」はIBM Notes Travelerをインストールす ると、自動で設定されます。  サーバ文書の保存後はサーバコンソールで tell http refresh と入力する。 - 14 - IBM Domino 9.0.1以降のみで有効 Extension Library 9.0が導入されている場合、正常に 動作しないので注意!
  • 15. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービスのサンプル  コアサービス 1. Dominoサーバーで許可されているData Serviceの種類を JSONで返す http://Dominoのホスト名/api 2. コアサービスのリソースを返す http://Dominoのホスト名/api/core/ 3. ログインユーザのパスワード最終変更日等の情報を返す http://Dominoのホスト名/api/core/pwstats 4. DominoサーバーのNotesアプリケーションの一覧(タイト ル、ファイル名、レプリカID等)を返す http:// Dominoのホスト名/api/data 5. ビューのチェック⽤URL http:// Dominoのホスト名/ノーツアプリケーションファイル名 /api/data/collections/unid/ビューのUNID?page=n ※?page=nは複数ページにまたがる場合に利⽤可能(表示したいページ数を指定する) - 15 -
  • 16. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービスのサンプル  カレンダーサービス(9.0.1~) 1. ログインしたユーザのカレンダーに関するData Serviceの URIを返す http:// Dominoのホスト名/api/calendar 2. 指定したユーザのカレンダーのイベントの一覧を返す http://Dominoのホスト名/メールDB名/api/calendar/events 3. 指定したユーザの会議招集メール(返信前の文書のみ)の 一覧を返す http://Dominoのホスト名/メールDB名/api/calendar/invitations 4. 指定したカレンダー文書の内容を返す http://Dominoのホスト名/メールDB名/api/calendar/events/文書 UNID-Lotus_Notes_Generated 5. 指定した会議招集メールの内容を返す http://Dominoのホスト名/メールDB名/api/calendar/notices/文書UNID - 16 -
  • 17. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービスのサンプル  メールサービス(Extension Library) 1. ログインしたユーザのメールに関するData ServiceのURI を返す http:// Dominoのホスト名/api/mail 2. 指定したメールDBの受信ボックスの文書一覧を返す http://Dominoのホスト名/メールDB名/api/mail/inbox 3. 指定したメール文書の内容を返す http://Dominoのホスト名/メールDB名/api/mail/messages/文書UNID 空き時間情報サービス(Extension Library) 1.空き時間情報を検索するData ServiceのURIを返す http://Dominoのホスト名/api/freebusy 2.指定したユーザの空き時間情報を返す http://Dominoのホスト名/api/freebusy/busytime?name=ユーザ名 - 17 -
  • 18. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  XPages Extension Libraryを使用した場合  カレンダービューをXPagesで実現してみる(1)  「calendarJson」(任意)という名前でXPageを作成する  [データアクセス]-[RESTサービス]コントロールを以下の内容 で設定  [iNotes]-[iNotesカレンダー]コントロールを以下の内容で設 定 - 18 - № カテゴリ名称項目名称値 1 基本pathInfo events(任意の値) 2 service xe:calendarJsonLegacyService 3 contentType application/json 4 databaseName 値を取得したいメールDBのファイルパス 5 viewName ($Calendar) № カテゴリ名称項目名称値 1 基本storeComponentId RESTサービスコントロールのID名
  • 19. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  XPages Extension Libraryを使用した場合  カレンダービューをXPagesで実現してみる(2)  「notesCalStore」(任意)という名前でXPageを作成する  [iNotes]-[NotesEカレンダーストア]コントロールを以下の内 容で設定  [iNotes]-[iNotesカレンダー]コントロールを以下の内容で設 定 - 19 - № カテゴリ名称項目名称値 1 基本databaseName 値を取得したいメールDBのファイルパス № カテゴリ名称項目名称値 1 基本storeComponentId RESTサービスコントロールのID名 ※こちらはRESTではなく、URLコマンドの「ReadViewEntries」でカレンダービューのデータを取得していますが、見た目は iNotesのカレンダーにかなり近くなります。
  • 20. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  XPages Extension Libraryを使用した場合  メールの受信ボックスをXPagesで実現してみる  「mailJson」(任意)という名前でXPageを作成する  [データアクセス]-[RESTサービス]コントロールを以下の内容 で設定 - 20 - № カテゴリ名称項目名称値 1 基本pathInfo inbox 2 service xe:viewJsonService 3 contentType application/json 4 databaseName 値を取得したいメールDBのファイルパス 5 var mailData 6 viewName ($Inbox) 7 columns 詳細は次ページ参照
  • 21. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  XPages Extension Libraryを使用した場合  メールの受信ボックスをXPagesで実現してみる  [RESTサービス]コントロールの”columns”に以下の4つのプ ロパティを追加する - 21 - № 名称項目名称値 1 restViewColumn[0] columnName $93 2 name Sender 3 restViewColumn[1] columnName $73 4 name Subject 5 restViewColumn[2] columnName $70 6 name DeliveryDate 7 restViewColumn[3] name Size 8 value var dsize = mailData.getColumnValue( "$106" ); return Math.round( dsize / 1024 ) + "K";
  • 22. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  XPages Extension Libraryを使用した場合  メールの受信ボックスをXPagesで実現してみる  [iNotes]-[iNotesリストビュー]コントロールを以下の内容で 設定  [iNotes]-[iNotesリストビュー列]コントロールを[iNotesリ ストビュー]コントロール配下に以下の内容で設定  [iNotesリストビュー列]は4つ配置する - 22 - № カテゴリ名称項目名称値 1 基本storeComponentId RESTサービスコントロールのID名 № カテゴリ名称項目名称値 1 基本columnName Sender Subject DeliveryDate Size 2 columnTitle 送信者件名日付サイズ
  • 23. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  XPages Extension Libraryを使用した場合  メールの受信ボックスをXPagesで実現してみる  ソースで見てみるとこんな感じ… - 23 - <xe:restService id="restService1" pathInfo="inbox"> <xe:this.service> <xe:viewJsonService databaseName=“メールファイルのパス“ viewName="($Inbox)" var="mailData" contentType="application/json"> <xe:this.columns> <xe:restViewColumn columnName="$93" name="Sender"></xe:restViewColumn> <xe:restViewColumn columnName="$73" name="Subject"></xe:restViewColumn> <xe:restViewColumn name="DeliveryDate“ columnName="$70"></xe:restViewColumn> <xe:restViewColumn name="Size"> <xe:this.value><![CDATA[#{javascript:var dsize = mailData.getColumnValue( "$106" ); return Math.round( dsize / 1024 ) + "K";}]]></xe:this.value> </xe:restViewColumn> </xe:this.columns> </xe:viewJsonService> </xe:this.service> </xe:restService> <xe:listView id="listView1" storeComponentId="restService1“ style="font-size:14pt;width:100%"> <xe:listViewColumn id="listViewColumn1“ columnTitle="送信者" columnName="Sender"></xe:listViewColumn> <xe:listViewColumn id="listViewColumn2“ columnName="Subject" columnTitle="件名" width="700px"></xe:listViewColumn> <xe:listViewColumn id="listViewColumn3“ columnName="DeliveryDate" columnTitle="日付"></xe:listViewColumn> <xe:listViewColumn id="listViewColumn4“ columnTitle="サイズ" columnName="Size"></xe:listViewColumn> </xe:listView>
  • 24. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  デモ(動作確認)  Dataサービス以外の動作も確認してみましょう! - 24 -
  • 25. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  デモ(お・ま・け)  あれ???  私の環境は「IBM Domino 9.0.1」なんですが… - 25 -
  • 26. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  おまけ(XAgentのサンプル)  XAgentとぐるなびWebサービスを使⽤して、JSONデータ を取得する  XAgentのページサンプル  Dominoサーバをクライアントとして他のWebサービスからXML/JSONを取得して、xspとして 展開する。これにより、別ドメインの情報を取得することが可能になる - 26 -
  • 27. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  おまけ(WebサービスをXPagesで利用)  XAgentで取得したデータを利⽤してXPagesに組み込んだサ ンプル  [ぐるなびAPI検索]ボタンのプログラムは昨年紹介したCSJSを 流⽤しています。 - 27 -
  • 28. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e まとめ  Notes/DominoでRESTを利用する  Notesアプリケーションのデータを他のWebシステムで動的 に再利⽤することが可能  従来は、CSVやExcel等の静的な受け渡しのみだった  他のWebシステムのデータをXPagesを使うことにより、 Notes/Dominoで利⽤することが可能  JavaScriptを利⽤出来るようになったので敷居が少し低くなっ た  Dataに加えて、メール、カレンダーや空き時間情報等も利 用できる  参照程度であれば、簡単に取得できるので、アプリケーション の幅が広がる! - 28 -
  • 29. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e まとめ  RESTを利用する際の注意事項  同一オリジンのサイト(プロトコル、ドメイン、ポート番号 が同じである)でないと、リソースへのアクセスができない。  Cross-Origin Resource Sharing(CORS)の有効化が必要  JSONP(JSON with padding)を利⽤することでも回避可能  XAgentを使ってサーバー経由で取得してもよい  機密事項を取り扱う場合は専⽤のサーバを⽤意して、SSL (HTTPS)通信で提供すること  社外に公開するような場合は特に注意!  ビューに表示する内容はよく選定すること! - 29 -
  • 30. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e 参考  DAS/REST関連のWebサイト  IBM Domino Access Services 9.0.1  IBM Notes and Domino Application Development wiki内の サイト(英語) http://ibm.co/1wGMxzh  デモで利用したツール  Firefox  RESTサービスの結果をブラウザ上で表示可能(日本語は Unicodeでエンコード表示される) http://www.mozilla.jp/  REST Client  Firefoxのアドオン。Response Headersの詳細も確認できる。 日本語はUnicodeをデコード表示してくれるので分かり易い。 http://restclient.net/ - 30 -
  • 31. ©2014 ef Co., Ltd. All rights Reserved. e f f e c t f o r c e - 31 - ご清聴ありがとうございました 次は、皆さんお待ちかね 『どこよりも早いXPages 最新情報』 のセッションです! 乞うご期待!! 私も拝聴します!