3

ファイルをアップロードするためのカスタム エンドポイントを作成したいのですが、汎用の Rest API スタブを使用し、POST メソッドを使用してファイルのコンテンツを取得できますか?

MarkLogic 8 では、単一ステートメント トランザクションの POST メソッドはクエリ モードで実行されます。

どういう意味ですか ?私はちょうど次のことを行うことができます,

declare function repo:post($context as map:map, $params  as map:map,$input   as document-node()*) as document-node()*
{
   let $filename := xdmp:get-request-field-filename("upload")
   let $contentType := xdmp:get-request-field-content-type("upload")
......
};

これは "multipart/form-data;" を取りますか? ?? 私が見ることができる例はありますか? 上記の方法は私にはうまくいかないようです

また、RXQ ( https://github.com/xquery/rxq ) を使用してみました (そして注釈が大好きです) が、multipart/form-data では失敗します ..

アプローチ方法についての指針は本当に役に立ちます..

ありがとう、ラヴィ

4

1 に答える 1

3

単一のドキュメントを作成するだけの場合は、組み込みの REST エンドポイントの使用を検討してください。

http://docs.marklogic.com/REST/PUT/v1/documents

ドキュメントの作成と同時にカスタム ロジックを実行したい場合、簡単な方法の 1 つは、副作用アクションを実行し、変更されずにドキュメントを単純に通過する変換を指定することです。

http://docs.marklogic.com/guide/rest-dev/transforms

カスタム ロジックで書き込みを処理する必要がある場合は、PUT メソッドの使用を検討してください。

http://docs.marklogic.com/REST/PUT/v1/resources/%5Bname%5D

単一の文書を作成するときは、文書形式を識別する MIME タイプを指定します。ドキュメントのバッチを作成するときは、各パートがドキュメント形式の MIME タイプを指定する multipart/mixed ペイロードとしてバッチをパッケージ化する必要があります。

REST 拡張機能を使用する場合、HTTP を操作する必要はありません。REST API がこれを行い、ドキュメントを取得して関数に渡します。期待される署名を持つ関数を書くだけです:

http://docs.marklogic.com/guide/rest-dev/extensions#id_75991

そして、関数を使用してライブラリ モジュールをインストールします。

http://docs.marklogic.com/guide/rest-dev/extensions#id_59112

それが役立つことを願って、

于 2016-02-14T15:03:25.787 に答える