SlideShare a Scribd company logo
1 of 24
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を覚えて使ってね♪

More Related Content

What's hot

ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントhistoria_Inc
 
初めての REST - Representational State Transfer
初めての REST - Representational State Transfer初めての REST - Representational State Transfer
初めての REST - Representational State TransferTatsumi Naganuma
 
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』historia_Inc
 
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔Insight Technology, Inc.
 

What's hot (6)

WordBeach @kurudrive
WordBeach @kurudriveWordBeach @kurudrive
WordBeach @kurudrive
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
 
初めての REST - Representational State Transfer
初めての REST - Representational State Transfer初めての REST - Representational State Transfer
初めての REST - Representational State Transfer
 
RESTfulとは
RESTfulとはRESTfulとは
RESTfulとは
 
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
「Helix Core」導入事例紹介 『小~中規模事例 "Unreal Engine 4 × Helix Core ヒストリア運用レギュレーション紹介"』
 
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
[db tech showcase Tokyo 2016] A35: NVMe徹底検証 by 株式会社インサイトテクノロジー 平間 大輔
 

Similar to XPagesでRESTを使ってみよう

XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習Masahiko Miyo
 
第一回Rest勉強会 ワークショップ
第一回Rest勉強会 ワークショップ第一回Rest勉強会 ワークショップ
第一回Rest勉強会 ワークショップksimoji
 
PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用Junichi Okamura
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう株式会社オプト 仙台ラボラトリ
 
Azure App Service Overview LT
Azure App Service Overview LTAzure App Service Overview LT
Azure App Service Overview LTKeiji Kamebuchi
 
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析Masaki Saito
 
Soycms css nite_lp6_fu_201312
Soycms css nite_lp6_fu_201312Soycms css nite_lp6_fu_201312
Soycms css nite_lp6_fu_201312Takashi Furusho
 
IETF96 Update oauth tokbind
IETF96 Update oauth tokbindIETF96 Update oauth tokbind
IETF96 Update oauth tokbindKaoru Maeda
 
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介Daisuke Ikeda
 
運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~
運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~
運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~hinemos_atomitech
 
チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正Yutaka Fujisaki
 
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんかクラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんかTakeshi Yoshida
 
AI搭載型IP電話 MiiTel を支える組織とアーキテクチャ
AI搭載型IP電話 MiiTel を支える組織とアーキテクチャAI搭載型IP電話 MiiTel を支える組織とアーキテクチャ
AI搭載型IP電話 MiiTel を支える組織とアーキテクチャRevComm Inc
 
Node red hands on - public
Node red hands on - publicNode red hands on - public
Node red hands on - publicTakehiko Amano
 
開発プラットフォームとしてのSugarCRM
開発プラットフォームとしてのSugarCRM開発プラットフォームとしてのSugarCRM
開発プラットフォームとしてのSugarCRMOSSラボ株式会社
 
あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)Hiroyuki Ishiyama
 

Similar to XPagesでRESTを使ってみよう (20)

XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習XPagesDay 2015 RESTの総復習
XPagesDay 2015 RESTの総復習
 
第一回Rest勉強会 ワークショップ
第一回Rest勉強会 ワークショップ第一回Rest勉強会 ワークショップ
第一回Rest勉強会 ワークショップ
 
ログについて改めて考えてみた
ログについて改めて考えてみたログについて改めて考えてみた
ログについて改めて考えてみた
 
PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用PayPalアカウントを使った便利で安心なプラットフォーム運用
PayPalアカウントを使った便利で安心なプラットフォーム運用
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃうフレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
フレームワークも使っていないWebアプリをLaravel+PWAでモバイルアプリっぽくしてみちゃう
 
Azure App Service Overview LT
Azure App Service Overview LTAzure App Service Overview LT
Azure App Service Overview LT
 
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
【A2iセミナー】できることからやってみたスマートフォン・Twitterのアクセス解析
 
Soycms css nite_lp6_fu_201312
Soycms css nite_lp6_fu_201312Soycms css nite_lp6_fu_201312
Soycms css nite_lp6_fu_201312
 
IETF96 Update oauth tokbind
IETF96 Update oauth tokbindIETF96 Update oauth tokbind
IETF96 Update oauth tokbind
 
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
 
運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~
運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~
運用管理のプロが教えるHinemos活用法~JBossやPostgreSQLを対象としたミドルウェア監視オプションやクラウド型Hinemosを使って~
 
チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正チラ見せ! マイソースファクトリーでのAws活用 修正
チラ見せ! マイソースファクトリーでのAws活用 修正
 
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんかクラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
クラウドサービスとの連携で Notes/Domino の新しい活用方法を考えてみませんか
 
Openshift 20191219
Openshift 20191219Openshift 20191219
Openshift 20191219
 
Ietf95 http2
Ietf95 http2Ietf95 http2
Ietf95 http2
 
AI搭載型IP電話 MiiTel を支える組織とアーキテクチャ
AI搭載型IP電話 MiiTel を支える組織とアーキテクチャAI搭載型IP電話 MiiTel を支える組織とアーキテクチャ
AI搭載型IP電話 MiiTel を支える組織とアーキテクチャ
 
Node red hands on - public
Node red hands on - publicNode red hands on - public
Node red hands on - public
 
開発プラットフォームとしてのSugarCRM
開発プラットフォームとしてのSugarCRM開発プラットフォームとしてのSugarCRM
開発プラットフォームとしてのSugarCRM
 
あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)あにみた!(PHPカンファレンス用資料)
あにみた!(PHPカンファレンス用資料)
 

More from 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
 
XPagesで検索してみよう
XPagesで検索してみようXPagesで検索してみよう
XPagesで検索してみようMasahiko Miyo
 
XPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだったXPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだったMasahiko Miyo
 

More from 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用アプリケーション プレゼント企画
 
XPagesで検索してみよう
XPagesで検索してみようXPagesで検索してみよう
XPagesで検索してみよう
 
XPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだったXPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだった
 

Recently uploaded

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 

Recently uploaded (10)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 

XPagesでRESTを使ってみよう

  • 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を覚えて使ってね♪