2016年5月24日火曜日

RESTコントロールを使いこなそう!(1)

みなさん、XPages開発してますか!?

ご無沙汰です。今回は、九州地区ノーツパートナー会でREST API作ろう!ということになり、詳しい解説をWebで調べてもないので、 じゃあお願いします!というご要望があり、せっかくなのでブログで発信したいと思います。

RESTコントロールを使いこなそう 連載

RESTとは? RESTコントロールとは?

RESTとは、HTTPを利用したサービス間通信のことです。 ブラウザでWebサイトを見るように、URLでアクセスできます。

DominoとRESTに関しては、"RESTの人"ことIBM Championの御代さんの記事が詳しいので、そちらを参照してくださいね。

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

この記事でも触れていますが、RESTコントロールはXPagesのコントロールの1つで、Extension Libraryに含まれています。

XPages内にこのコントロールを貼り付けて、処理を記述すると、簡単にRESTによるWebAPIが作成できます。

準備

Domino 9.0 以降であれば、Extension Libraryが含まれていますので、そのまま使えます。

Domino 8.5.2, 8.5.3 の人は、Extension Libraryを導入しましょう。導入方法は↓を参考にしてください。

OpenNTF XPages Extension Library のインストール方法

XPagesにRESTコントロールを貼り付ける

早速、Domino Designerを開いて、空のXPageを作成します。ここでは、"api.xsp"としましょう。

そこに、"RESTサービス"という名前のコントロールをドラッグ&ドロップします。

RESTコントロールをD&D

これは簡単ですね。

Web APIのURLを決める

貼り付けたRESTコントロールを選択して、"全てのプロパティ"を開きます。

そこに、"pathInfo"という項目があります。ここにサービスの内容にふさわしい名前を入れます。

ここでは、Q&Aサイトから質問を取得したり投稿するサービスを作りたいと思うので、"questions"という名前にしたいと思います。

この名前が、Web APIのURLの一部になります。例えば、XPagesのURLが "http://192.168.1.1/qa.nsf/api.xsp" だった場合、URLは下記のようになります。

http://192.168.1.1/qa.nsf/api.xsp/questions

pathInfo

サービスのタイプを指定する

"全てのプロパティ"の "service" をドロップダウンリストから選択します。

いくつか種類がありますが、自分で自由なJSONを返したい場合は "customRestService" を選択します。

これ以外のサービスは、例えば "viewJsonService" であれば、DB名やビュー名を指定するだけで、ビューエントリーの一覧をJSONで返すサービスがノーコーディングで提供できます。

リクエストとレスポンスのコンテントタイプを指定する

コンテントタイプとは、HTTPで送受信される内容の種類を表すものです。

HTMLであれば "text/html" 、PNG画像であれば "image/png" といった具合です。

今回は、送受信ともにJSONを利用します。その場合のコンテントタイプは、 "application/json" となります。

参考: コンテントタイプ一覧

"customRestService" の中にある、 "contentType" , "requestContentType" に "application/json" を指定します。

content-type

次回へ

ちょっと長くなったので次回に続きます。

0 件のコメント:

コメントを投稿