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-typeHTTP
ヘッダでコンテンツの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
に設定すると、どのようなペイロードエラーでも400BadRequestレスポンスが返されます。