• 検索結果がありません。

REST API を使用したトリプルのロード

ドキュメント内 Semantics Developer’s Guide (ページ 52-58)

3.2 トリプルのロード

3.2.5 REST API を使用したトリプルのロード

5.

ポート

8000

に関連付けられたデフォルトの

REST API

インスタンスを使用でき ます。新しい

REST API

インスタンスを作成する場合は、『

REST Application

Developer’s Guide』の「

3.2.5.2

グラフストアの処理

グラフエンドポイントは、W3Cのグラフストア

HTTP

プロトコルの実装であり、

SPARQL 1.1

グラフストア

HTTP

プロトコルで指定されています。

http://www.w3.org/TR/2012/CR-sparql11-http-rdf-update-20121108

グラフストアのベース

URL

は次のとおりです。

http://hostname:port/version/graphs

hostname

MarkLogic

サーバーのホストマシン、

port

REST API

インスタンスが実行 されているポート、versionは

API

のバージョン番号です。グラフストア

HTTP

プロト

コルは、

RESTful HTTP

リクエストから対応する

SPARQL 1.1

更新操作へのマッピング

です。『

REST Application Developer’s Guide

』の「

てください。

3.2.5.3

パラメータの指定

グラフエンドポイントでは、特定の名前付きグラフに対してオプションのパラメータを 利用できます。次に例を示します。

http://localhost:8000/v1/graphs?graph=http://named-graph

省略した場合、デフォルトグラフが値なしのデフォルトパラメータとして指定されてい る必要があります。

次に例を示します。

http://localhost:8000/v1/graphs?default

パラメータなしでGETリクエストが発行されると、グラフのリストがリスト形式で返さ れます。

3.2.5.4

サポートされている動詞

REST

クライアントでは、MarkLogicサーバーとやり取りするためにGETやPUTといっ た

HTTP

動詞を使用します。次の表は、サポートされている動詞と、それぞれを使用す るために必要なロールを示したものです。

MarkLogic

REST API

リクエストを実行するために使用するロールでは、

HTTP

呼び

出しによってアクセスされるコンテンツに対して適切な権限(例えば、ターゲットデー タベース内のドキュメントを読み取りまたは更新するパーミッション)が必要です。

REST API

のロールと権限の詳細については、『REST Application Developer’s Guide』の

「」を参照してください。

注:

このエンドポイントは、要素sem:tripleがルートであるドキュメントだけ を更新します。

3.2.5.5

サポートされているメディア形式

Content-type

HTTP

ヘッダでサポートされているメディア形式のリストについては、「サ

ポートされている

RDF

トリプルのシリアライゼーション」(36ページ)を参照してく ださい。

3.2.5.6

トリプルのロード

トリプルを挿入するには、PUTまたはPOSTリクエストを次の形式の

URL

にします。

http://host:port/v1/graphs?graph=graphname

動詞 説明 ロール

GET 名前付きグラフを取得します。

rest-reader

POST 名前付きグラフにトリプルをマージするか、空のグラフ にトリプルを追加します。

rest-writer

PUT 名前付きグラフ内のトリプルを置換するか、空のグラフ にトリプルを追加します。機能的には

DELETE

の後に

POST

を実行することと同等です。例については、「トリ プルのロード」(

54

ページ)を参照してください。

rest-writer

DELETE 名前付きグラフ内のトリプルを削除します。

rest-writer

HEAD グラフが存在するかどうかをテストします。ボディなし で、名前付きグラフを取得します。

rest-reader

リクエストを構築するときは、次の手順に従います。

1.

graphパラメータを名前付きグラフまたはデフォルトグラフに設定します。

2.

リクエストのボディにコンテンツを配置します。

3.

Content-type

HTTP

ヘッダでコンテンツの

MIME

タイプを指定します。「サポー

トされている

RDF

トリプルのシリアライゼーション」(

36

ページ)を参照して ください。

4.

ユーザー資格情報を指定します。

トリプルがパースされ、デフォルトディレクトリ/triplestoreにロードされます。

UNIX

または

Cygwin

コマンドラインインタプリタでのcurlコマンドの例を次に示しま

す。このコマンドは、PUT

HTTP

リクエストを送信して、ファイルexample.ntのコンテン ツを

XML

ドキュメントとしてデータベースのデフォルトコレクションに挿入します。

# Windows???????????

$ curl -s -X PUT --data-binary '@example.nt' \ -H "Content-type: application/n-triples" \ --digest --user "admin:password" \

"http://localhost:8000/v1/graphs?default"

注:

PUTまたはPOSTを使用して

REST

エンドポイントでトリプルをロードする場 合は、デフォルトグラフまたは名前付きグラフを指定する必要があります。

上記の例では、次のcurlコマンドオプションを使用しています。

オプション 説明

-s サイレントモードを指定します。そのため、curlの出力に は、

HTTP

レスポンスヘッダは含まれません。レスポンス ヘッダを含める場合の代替オプションは-iです。

-X http_method curlで送信する

HTTP

リクエストのタイプ(PUT)。サポー

トされているその他のリクエストは、GET、POST、および

DELETEです。「サポートされている動詞」(54ページ)を参

照してください。

REST API

の詳細については、『

REST Client API

』でセマンティックのドキュメントを参照 してください。

3.2.5.7

レスポンスエラー

このセクションでは、MarkLogicの

REST API

で採用されているエラーレポートの表記 規則について説明します。

MarkLogic

REST API

インスタンスに対するリクエストで障害が発生すると、エラー

レスポンスコードが返され、追加情報の詳細がレスポンスのボディに含まれます。

次のようなレスポンスエラーが返されます。

パラメータがまったくないPUTまたはPOSTリクエストのときは、400 Bad Request

が返されます。

パースで障害が発生するペイロードのPUTまたはPOSTリクエストのときは、400 Bad Requestが返されます。

存在しない(コレクションレキシコンに

IRI

が存在しない)グラフに対するGET

リクエストのときは、404 Not Foundが返されます。

サポートされていないシリアライゼーションのトリプルに対するGETリクエスト のときは、406 Not Acceptableが返されます。

--data-binary data リクエストのボディに含めるデータ。データは、

--data-binaryの引数としてコマンドラインに直接配置した

り、@filenameを使用してファイルから読み取ったりできま

す。Windowsを使用している場合は、「@」演算子をサポー

トするcurlの

Windows

バージョンが必要です。

-H headers リクエストに含める

HTTP

ヘッダ。このガイドの例では、

Content-typeを使用しています。

--digest ユーザーのパスワードは、指定した認証手法によって暗号

化されます。

--user user:password リクエストを認証するために使用されるユーザー名とパス

ワード。リクエストされた操作を実行するのに十分な権限

を持つ

MarkLogic

サーバーユーザーを使用します。詳細に

ついては、『REST Application Developer’s Guide』の

オプション 説明

サポートされていない形式のPOSTまたはPUTリクエストのときは、415 Unsupported Media Typeが返されます。

注:

POSTおよびPUTリクエストのrepairパラメータは、trueまたはfalseに設 定できます。デフォルトではfalseです。trueに設定すると、適切にパー スを実行しないペイロードであっても、パースを実行するトリプルを挿入

します。

false

に設定すると、どのようなペイロードエラーでも400Bad

Requestレスポンスが返されます。

ドキュメント内 Semantics Developer’s Guide (ページ 52-58)