XPagesでRESTを使ってみよう
株式会社エフ マネージャー
御代 政彦(みよ まさひこ)
2015年6月
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
免責事項について
本資料は、個人的な見解によるものです。情報の内容に
ついては万全を期しておりますが、その内容を保証する
ものではありません。
本資料の情報は、使⽤先の責任において使⽤されるべき
ものであることを、あらかじめご了承ください。
執筆者の承諾なしに、コピー、複製、他のメディアに転
載する事はご遠慮ください。
当資料に記載された製品名または会社名はそれぞれの各
社の商標または登録商標です。
- 2 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
まだまだ認知度が低いので…
御代 政彦(Miyo Masahiko)
2011年12月からIBM Champion for ICSをやってます
Twitter:@guylocke
Facebook:guylocke34
ブログ:http://guylocke.blogspot.jp
- 3 -
ef-info@effect-force.co.jp
自己紹介
のおつ 検索
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
アジェンダ
 RESTとは?
 RESTサービス
 JSONについて
 Dominoアクセスサービス
 Dominoアクセスサービス
 Notes/Dominoの設定
 サンプルURL
 XPagesへの応用
 RESTコントロールを使った例
 OnTime OpenAPIを使った例
 まとめ
 注意事項、参考情報
- 4 -
©2015 ef Co., Ltd. All rights Reserved.
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(削除)のこと
- 5 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
RESTとは?
 JSONについて
 正式名称は、「JavaScript Object Notation」
 JavaScriptにおけるオブジェクトの表記法をベースとした軽
量なデータ記述言語である。
 JavaScript専⽤ではなく、様々なソフトウェア間でデータの受
け渡しができるように設計されている
 書式はXMLに比べて、かなり簡略化されている。
 オブジェクトは{}で囲む
 配列は[]で囲む
 オブジェクトの要素は、:で区切る
- 6 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
RESTとは?
 JSONのデータサンプル
{
"name" : "Masahiko Miyo",
"age" : 45,
"male" : true,
"emails" : ["m.miyo@effect-force.co.jp", "guylocke34@gmail.com"],
"address" : {
"street" : "3-13-16 Mita",
"zipCode" : "108-0073",
"city" : "Minato-Ku",
"country" : "Japan",
"country-knj" : "¥u65e5¥u672c"
}
}
- 7 -
1. 項目名:値という形で記述する
2. 項目名は“”(ダブルクォーテーション)で囲うこと
3. 値は、文字列、数値、日付/時刻、論理値等を記述可能
4. 日本語はUnicodeでエンコードすること
5. 配列は、[]で囲うこと
6. 項目名の大文字小文字は区別されるので注意すること
Unicodeで”日本”と書いてある
数値や論理値も扱える
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
Dominoアクセスサービス
 Dominoアクセスサービス
 Domino 8.5.3 Upgrade Pack1から採⽤されたDominoの
データにアクセスするためのREST API
 Domino上のNotesアプリケーションへHTTPプロトコルを利⽤
してアクセスするためのサービス
 Notesアプリケーション、ビュー(フォルダ含む)、文書にア
クセス可能
 データの作成、読込、更新、削除(CRUD)をサポート
 データフォーマットに、JavaScript からの操作が効率的な
JSONを採⽤
- 8 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
Dominoアクセスサービス
 Notes/Dominoの設定(1)
 Dominoディレクトリにあるサーバ文書の[インターネットプ
ロトコル]-[Domino Web Engine]タブを開く。
 「Domino アクセスサービス」の「有効なサービス」にサー
ビス名を設定する。
 2015年6月の時点で設定可能なのは「Data, TravelerAdmin,
Calendar, Mail, FreeBusy」。
 サーバ文書の保存後はサーバコンソールで
tell http refresh
と入力する。
「TravelerAdmin」はIBM Notes Travelerをイン
ストールすると、自動で設定されます。
IBM Domino 9.0.1以降のみで有効
「Mail」及び「FreeBusy」サービスの利用は
Extension Library 9.0.1が導入されている必要があ
ります。
- 9 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
Dominoアクセスサービス
 Notes/Dominoの設定(2)
 サービスを適⽤したいNotesアプリケーションの「データ
ベースプロパティ」を開きます。
 一番右の[詳細]タブを開きます。
 「IBM Domino データサービス
を許可」の値を「ビューと文書」
に変更します。
- 10 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
Dominoアクセスサービス
 Notes/Dominoの設定(3)
 サービスを適⽤したいNotesアプリケーションの「ビュー」
(もしくはフォルダ)をDomino Designerで開きます。
 ビュープロパティにある右から二番目の[詳細]タブを開きま
す。
 「IBM Domino データサービスの操作を許可」にチェック
をつけます。
 ビューを保存します。
- 11 -
 文書情報へとアクセスするのに「フォーム」に対して、Domino
データサービスの設定は必要ない。
→設定する箇所がない
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
Dominoアクセスサービス
 DominoでのJSONのデータサンプル
- 12 -
[
{
"@title":"Administration Requests",
"@filepath":"admin4.nsf",
"@replicaid":"49257B45034CEF77",
"@template":"StdR4AdminRequests",
"@href":"¥/admin4.nsf¥/api¥/data¥/collections"
},
{
"@title":"¥u30D1¥u30B9¥u30EF¥u30FC¥u30C9¥u3042¥u308A¥u306A¥u3057¥u30C6¥u30B9¥u3
0C8",
"@filepath":"abcdefg.nsf",
"@replicaid":"492576AF0007568C",
"@template":"",
"@href":"¥/abcdefg.nsf¥/api¥/data¥/collections"
}
]
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
Dominoアクセスサービス
 サンプルURL
 Webブラウザで、下記のURLを入力してみよう
 IEの場合、ファイルを保存するかどうか聞かれるので保存する
- 13 -
1. Notesアプリケーションの一覧とは、「タイトル」、「ファイル名」、「レプリカID」等を指す
2. ?page=nは複数ページにまたがる場合に利⽤可能(表示したいページ数を指定する)
3. RESTアクセスを許可していないビューのUNIDを指定すると、「HTTP403」エラーになる
4. カレンダーのRESTサービスはIBM Domino 9.0.1から利⽤可能
No. 内容 URL
1
DominoサーバーのNotesアプ
リケーションの一覧
http:// Dominoのホスト名/api/data
2
ノーツDBのRESTサービス
チェック
http://Dominoホスト名/hoge.nsf/api/data/collections?page=n
3 ビューのチェック http:// Dominoのホスト名/hoge.nsf/api/data/collections/unid/ビューUNID
4 文書のチェック http:// Dominoのホスト名/hoge.nsf/api/data/documents/unid/文書UNID
5
指定したユーザのカレンダー
のイベントの一覧
http://Dominoのホスト名/メールDB名/api/calendar/events
6
指定したカレンダー文書の内
容
http://Dominoのホスト名/メールDB名/api/calendar/events/文書UNID-Lotus_Notes_Generated
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 RESTコントロールを使った例
 XAgentとlivedoor天気情報を使⽤して、JSONデータを取得
する
 XAgentの内容については下記を参照
http://guylocke.blogspot.jp/2014/12/xagent.html
 RESTコントロールを設置することで、JSONデータを取得する
方法だけ記述すれば良くなる
 設定方法は次ページ参照
- 14 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 RESTコントロールの設定例
- 15 -
№ カテゴリ名称 項目名称 値
1 基本 id restService1(任意の値)
2 pathInfo restData(任意の値)
3 service xe:customRestService
4 contentType application/json
5 doGet *下図参照
doGetの記述サンプル
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 JSONへのアクセス方法
- 16 -
下図は、お天気Webサービスにアクセスしたときのレスポンス(JSONで返ってくる)
このページは、前述したRESTコントロールで取得するようにしてある
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 サンプル画面
 XAgentで取得した天気予報データを利⽤してXPagesに組み
込んだサンプル
 [天気情報検索]ボタンのプログラムは昨年紹介したCSJSを流⽤。
- 17 -
【検索プログラムの大まかな流れ】
1. エンドポイント(HTTPアクセスするURL)を設定
 この時、固有なキーなども同時に設定する
2. XMLHttpRequestの定義
3. HTTPリクエストの内容設定
 リクエストヘッダやメソッドの種類、リクエストのJSONなども設定
4. HTTP送信
5. コールバック関数の定義
 HTTP通信の結果によって、実行するロジックを記述
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 OnTime OpenAPIを使った例
 OnTime Group CalendarにもREST APIが実装されている
 OnTime Group Calendar API Explorer を試すためのサイト
 (Username: demo / Password: demo)
http://demo.ontimesuite.com/apiexplorer
 自社でOnTimeを導入している場合は以下のURLでテスト可能
http://Dominoのホスト名/OnTimeクライアントDBのパス名
 API Explorerを使うことで、RequestのURLやRequest⽤の
JSONの書式がわかるようになっている
- 18 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 OnTime OpenAPIを使った例
 OnTime Open APIをXPagesで利⽤したサンプルプログラム
1. OnTimeのログイン情報を持つTokenの取得
2. OnTimeのUserIDの取得
3. 指定した日付のスケジュール文書のUNIDの取得
4. 指定した文書UNIDのカレンダー情報の取得
5. 設定した内容をスケジュール文書に書き込む
 OnTime 経由(Sync機能)で、ノーツと即時連携可能!
1. OnTime Group Calendarに即時に反映される
2. OnTimeを通じて、ノーツのスケジュール文書に即時に反映さ
れる
 XPagesならCSJSで記述可能!
1. 前述したお天気Webサービスと同様の記述で実行可能!
- 19 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
XPagesへの応⽤
 デモ(動作確認)
 OnTime OpenAPIのサンプルプログラムは、映像で見ま
しょう♪
- 20 -
©2015 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経由で、Dominoで利
⽤することが可能
 JavaScriptを利⽤出来るようになったので敷居が少し低くなっ
た
 RESTコントロールを使うことで、JSONの取得が簡単に!
 データ取得の記述のみで良い!
 OnTime OpenAPIは利用方法が簡単!
 API Explorerを利⽤することで、JSONの取得方法が簡単にわ
かる!
- 21 -
©2015 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を使ってサーバー経由で取得してもよい
 外部のWebサービスの場合、仕様の確認が大事
 ぐるなびAPIやOnTime OpenAPIでは、アプリケーション⽤の
キーが必要になるので、別途取得する必要がある。
 APIの仕様が変わることにより、データの取得方法が変わる場
合がある。
- 22 -
©2015 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
 デモで利用したツール/サービス
 REST Client
 Firefoxのアドオン。Response Headersの詳細も確認できる。日本語はUnicode
をデコード表示してくれるので分かり易い。
http://restclient.net/
 JSON Viewer
 Firefoxのアドオン。JSONドキュメントをブラウザー内で階層化表示してくれる。
ダブルバイトもデコードしてくれるので、とても見やすい。
http://jsonview.com/
 Weather Hacks(お天気Webサービス )
 Livedoorのお天気Webサービス。全国142カ所の今日・明日・あさっての天気予
報・予想気温と都道府県の天気概況情報を提供している。
http://weather.livedoor.com/weather_hacks/webservice
 OnTime Group Calendar API Explorer
 OnTime Group Calendar内にあるOnTime OpenAPIをエミュレートするための
ツール。
http://demo.ontimesuite.com/apiexplorer
- 23 -
©2015 ef Co., Ltd. All rights Reserved.
e f f e c t f o r c e
- 24 -
ご清聴ありがとうございました
REST APIを覚えて使ってね♪

XPagesでRESTを使ってみよう

  • 1.
  • 2.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e 免責事項について 本資料は、個人的な見解によるものです。情報の内容に ついては万全を期しておりますが、その内容を保証する ものではありません。 本資料の情報は、使⽤先の責任において使⽤されるべき ものであることを、あらかじめご了承ください。 執筆者の承諾なしに、コピー、複製、他のメディアに転 載する事はご遠慮ください。 当資料に記載された製品名または会社名はそれぞれの各 社の商標または登録商標です。 - 2 -
  • 3.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e まだまだ認知度が低いので… 御代 政彦(Miyo Masahiko) 2011年12月からIBM Champion for ICSをやってます Twitter:@guylocke Facebook:guylocke34 ブログ:http://guylocke.blogspot.jp - 3 - ef-info@effect-force.co.jp 自己紹介 のおつ 検索
  • 4.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e アジェンダ  RESTとは?  RESTサービス  JSONについて  Dominoアクセスサービス  Dominoアクセスサービス  Notes/Dominoの設定  サンプルURL  XPagesへの応用  RESTコントロールを使った例  OnTime OpenAPIを使った例  まとめ  注意事項、参考情報 - 4 -
  • 5.
    ©2015 ef Co.,Ltd. All rights Reserved. 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(削除)のこと - 5 -
  • 6.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e RESTとは?  JSONについて  正式名称は、「JavaScript Object Notation」  JavaScriptにおけるオブジェクトの表記法をベースとした軽 量なデータ記述言語である。  JavaScript専⽤ではなく、様々なソフトウェア間でデータの受 け渡しができるように設計されている  書式はXMLに比べて、かなり簡略化されている。  オブジェクトは{}で囲む  配列は[]で囲む  オブジェクトの要素は、:で区切る - 6 -
  • 7.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e RESTとは?  JSONのデータサンプル { "name" : "Masahiko Miyo", "age" : 45, "male" : true, "emails" : ["m.miyo@effect-force.co.jp", "guylocke34@gmail.com"], "address" : { "street" : "3-13-16 Mita", "zipCode" : "108-0073", "city" : "Minato-Ku", "country" : "Japan", "country-knj" : "¥u65e5¥u672c" } } - 7 - 1. 項目名:値という形で記述する 2. 項目名は“”(ダブルクォーテーション)で囲うこと 3. 値は、文字列、数値、日付/時刻、論理値等を記述可能 4. 日本語はUnicodeでエンコードすること 5. 配列は、[]で囲うこと 6. 項目名の大文字小文字は区別されるので注意すること Unicodeで”日本”と書いてある 数値や論理値も扱える
  • 8.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービス  Dominoアクセスサービス  Domino 8.5.3 Upgrade Pack1から採⽤されたDominoの データにアクセスするためのREST API  Domino上のNotesアプリケーションへHTTPプロトコルを利⽤ してアクセスするためのサービス  Notesアプリケーション、ビュー(フォルダ含む)、文書にア クセス可能  データの作成、読込、更新、削除(CRUD)をサポート  データフォーマットに、JavaScript からの操作が効率的な JSONを採⽤ - 8 -
  • 9.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービス  Notes/Dominoの設定(1)  Dominoディレクトリにあるサーバ文書の[インターネットプ ロトコル]-[Domino Web Engine]タブを開く。  「Domino アクセスサービス」の「有効なサービス」にサー ビス名を設定する。  2015年6月の時点で設定可能なのは「Data, TravelerAdmin, Calendar, Mail, FreeBusy」。  サーバ文書の保存後はサーバコンソールで tell http refresh と入力する。 「TravelerAdmin」はIBM Notes Travelerをイン ストールすると、自動で設定されます。 IBM Domino 9.0.1以降のみで有効 「Mail」及び「FreeBusy」サービスの利用は Extension Library 9.0.1が導入されている必要があ ります。 - 9 -
  • 10.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービス  Notes/Dominoの設定(2)  サービスを適⽤したいNotesアプリケーションの「データ ベースプロパティ」を開きます。  一番右の[詳細]タブを開きます。  「IBM Domino データサービス を許可」の値を「ビューと文書」 に変更します。 - 10 -
  • 11.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービス  Notes/Dominoの設定(3)  サービスを適⽤したいNotesアプリケーションの「ビュー」 (もしくはフォルダ)をDomino Designerで開きます。  ビュープロパティにある右から二番目の[詳細]タブを開きま す。  「IBM Domino データサービスの操作を許可」にチェック をつけます。  ビューを保存します。 - 11 -  文書情報へとアクセスするのに「フォーム」に対して、Domino データサービスの設定は必要ない。 →設定する箇所がない
  • 12.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービス  DominoでのJSONのデータサンプル - 12 - [ { "@title":"Administration Requests", "@filepath":"admin4.nsf", "@replicaid":"49257B45034CEF77", "@template":"StdR4AdminRequests", "@href":"¥/admin4.nsf¥/api¥/data¥/collections" }, { "@title":"¥u30D1¥u30B9¥u30EF¥u30FC¥u30C9¥u3042¥u308A¥u306A¥u3057¥u30C6¥u30B9¥u3 0C8", "@filepath":"abcdefg.nsf", "@replicaid":"492576AF0007568C", "@template":"", "@href":"¥/abcdefg.nsf¥/api¥/data¥/collections" } ]
  • 13.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e Dominoアクセスサービス  サンプルURL  Webブラウザで、下記のURLを入力してみよう  IEの場合、ファイルを保存するかどうか聞かれるので保存する - 13 - 1. Notesアプリケーションの一覧とは、「タイトル」、「ファイル名」、「レプリカID」等を指す 2. ?page=nは複数ページにまたがる場合に利⽤可能(表示したいページ数を指定する) 3. RESTアクセスを許可していないビューのUNIDを指定すると、「HTTP403」エラーになる 4. カレンダーのRESTサービスはIBM Domino 9.0.1から利⽤可能 No. 内容 URL 1 DominoサーバーのNotesアプ リケーションの一覧 http:// Dominoのホスト名/api/data 2 ノーツDBのRESTサービス チェック http://Dominoホスト名/hoge.nsf/api/data/collections?page=n 3 ビューのチェック http:// Dominoのホスト名/hoge.nsf/api/data/collections/unid/ビューUNID 4 文書のチェック http:// Dominoのホスト名/hoge.nsf/api/data/documents/unid/文書UNID 5 指定したユーザのカレンダー のイベントの一覧 http://Dominoのホスト名/メールDB名/api/calendar/events 6 指定したカレンダー文書の内 容 http://Dominoのホスト名/メールDB名/api/calendar/events/文書UNID-Lotus_Notes_Generated
  • 14.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  RESTコントロールを使った例  XAgentとlivedoor天気情報を使⽤して、JSONデータを取得 する  XAgentの内容については下記を参照 http://guylocke.blogspot.jp/2014/12/xagent.html  RESTコントロールを設置することで、JSONデータを取得する 方法だけ記述すれば良くなる  設定方法は次ページ参照 - 14 -
  • 15.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  RESTコントロールの設定例 - 15 - № カテゴリ名称 項目名称 値 1 基本 id restService1(任意の値) 2 pathInfo restData(任意の値) 3 service xe:customRestService 4 contentType application/json 5 doGet *下図参照 doGetの記述サンプル
  • 16.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  JSONへのアクセス方法 - 16 - 下図は、お天気Webサービスにアクセスしたときのレスポンス(JSONで返ってくる) このページは、前述したRESTコントロールで取得するようにしてある
  • 17.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  サンプル画面  XAgentで取得した天気予報データを利⽤してXPagesに組み 込んだサンプル  [天気情報検索]ボタンのプログラムは昨年紹介したCSJSを流⽤。 - 17 - 【検索プログラムの大まかな流れ】 1. エンドポイント(HTTPアクセスするURL)を設定  この時、固有なキーなども同時に設定する 2. XMLHttpRequestの定義 3. HTTPリクエストの内容設定  リクエストヘッダやメソッドの種類、リクエストのJSONなども設定 4. HTTP送信 5. コールバック関数の定義  HTTP通信の結果によって、実行するロジックを記述
  • 18.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  OnTime OpenAPIを使った例  OnTime Group CalendarにもREST APIが実装されている  OnTime Group Calendar API Explorer を試すためのサイト  (Username: demo / Password: demo) http://demo.ontimesuite.com/apiexplorer  自社でOnTimeを導入している場合は以下のURLでテスト可能 http://Dominoのホスト名/OnTimeクライアントDBのパス名  API Explorerを使うことで、RequestのURLやRequest⽤の JSONの書式がわかるようになっている - 18 -
  • 19.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  OnTime OpenAPIを使った例  OnTime Open APIをXPagesで利⽤したサンプルプログラム 1. OnTimeのログイン情報を持つTokenの取得 2. OnTimeのUserIDの取得 3. 指定した日付のスケジュール文書のUNIDの取得 4. 指定した文書UNIDのカレンダー情報の取得 5. 設定した内容をスケジュール文書に書き込む  OnTime 経由(Sync機能)で、ノーツと即時連携可能! 1. OnTime Group Calendarに即時に反映される 2. OnTimeを通じて、ノーツのスケジュール文書に即時に反映さ れる  XPagesならCSJSで記述可能! 1. 前述したお天気Webサービスと同様の記述で実行可能! - 19 -
  • 20.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e XPagesへの応⽤  デモ(動作確認)  OnTime OpenAPIのサンプルプログラムは、映像で見ま しょう♪ - 20 -
  • 21.
    ©2015 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経由で、Dominoで利 ⽤することが可能  JavaScriptを利⽤出来るようになったので敷居が少し低くなっ た  RESTコントロールを使うことで、JSONの取得が簡単に!  データ取得の記述のみで良い!  OnTime OpenAPIは利用方法が簡単!  API Explorerを利⽤することで、JSONの取得方法が簡単にわ かる! - 21 -
  • 22.
    ©2015 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を使ってサーバー経由で取得してもよい  外部のWebサービスの場合、仕様の確認が大事  ぐるなびAPIやOnTime OpenAPIでは、アプリケーション⽤の キーが必要になるので、別途取得する必要がある。  APIの仕様が変わることにより、データの取得方法が変わる場 合がある。 - 22 -
  • 23.
    ©2015 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  デモで利用したツール/サービス  REST Client  Firefoxのアドオン。Response Headersの詳細も確認できる。日本語はUnicode をデコード表示してくれるので分かり易い。 http://restclient.net/  JSON Viewer  Firefoxのアドオン。JSONドキュメントをブラウザー内で階層化表示してくれる。 ダブルバイトもデコードしてくれるので、とても見やすい。 http://jsonview.com/  Weather Hacks(お天気Webサービス )  Livedoorのお天気Webサービス。全国142カ所の今日・明日・あさっての天気予 報・予想気温と都道府県の天気概況情報を提供している。 http://weather.livedoor.com/weather_hacks/webservice  OnTime Group Calendar API Explorer  OnTime Group Calendar内にあるOnTime OpenAPIをエミュレートするための ツール。 http://demo.ontimesuite.com/apiexplorer - 23 -
  • 24.
    ©2015 ef Co.,Ltd. All rights Reserved. e f f e c t f o r c e - 24 - ご清聴ありがとうございました REST APIを覚えて使ってね♪