POST を使用してジョブを開始する

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  サーバー API: HTTP、COM/.NET、Java > HTTP インターフェイス > クライアントリクエスト >

POST を使用してジョブを開始する

このセクション:

 

リクエストの送信
POST リクエストのための JSON 構文
POST リクエストを使用してファイルを更新する
ZIP アーカイブのアップロード

 

リクエストの送信

HTTP POST メソッドにより RaptorXML+XBRL Server ジョブが開始されます。

 

 

HTTP メソッド

URI

コンテンツ型

ボディ

POST

http://localhost:8087/v1/queue/

application/json

JSON

 

 

以下の点に注意してください:

 

上の URI には、 初期構成の設定を使用するサーバーアドレスがあります。
URI には、 URI 内に存在しなくてはならない、/v1/queue/ パスがあります。 ジョブが置かれるメモリ内のあいまいなフォルダーとして考えられます。
正確なバージョン番号 /vN は、サーバーが返す番号です。 (このドキュメント内に記載されている番号ではない可能性があります)。 サーバーが返す番号は、 現在の HTTP インターフェイスのバージョン番号。 前のバージョン番号は、下位互換性により、サポートされている HTTP インターフェイスの古いバージョンを示します。
ヘッダーは以下のフィールドを含む必要があります: Content-Type: application/json。しかし、 POST リクエストの本文内でファイルをアップロードする場合は、メッセージヘッダーのコンテンツ型が multipart/form-data (例、 Content-Type: multipart/form-data) に設定されている必要があります。 POST リクエストと共にファイルをアップロード のセクションを参照してください。
リクエストの本文は、 JSON フォーマットである必要があります。
処理されるファイルはサーバー上にある必要があります。ですから、リクエストが作成される前に、ファイルはサーバー上にコピーされるか、 POST リクエストと共にファイルがアップロードされている必要があります。この場合、メッセージヘッダーは、コンテンツ型を multipart/form-data に設定する必要があります。詳細に関しては、POST リクエストと共にファイルをアップロードのセクションを参照してください。

 

XML ファイルの整形式のチェックをするには、JSON フォーマット内のリクエストは以下に類似します:

 

{

 "command": "wfxml", "args": [ "file:///c:/Test/Report.xml" ] 

}

 

有効なコマンドとその引数およびオプションは、コマンドライン セクションで説明されているとおりです。

 

 

HTTP POST リクエストのための JSON 構文

 

{

"command": "Command-Name",

"options": {"opt1": "opt1-value", "opt2": "opt2-value"},

"args"   : ["file:///c:/filename1", "file:///c:/filename2"]

}

 

黒いテキストはすべて含まれる必要があります。これは、すべてのかっこ、二重引用符、コロン、コンマおよび角かっこを含みます。 空白文字は正規化されることができます。
青い斜体は、プレースホルダでコマンド名、オプション、オプションの値、および 引数の値を意味します。コマンドについての説明は、コマンドライン セクションを参照してください。

 

command および args キーは必須です。options キーは任意です。 options キーの一部は、デフォルトの値を持ちます。ですから、これらのオプションは、デフォルトの値が変更され指定される必要があります。

 

すべての文字列は、二重引用符で囲まれる必要があります。ブール値および数値は引用符と必要としません。 ですから: {"error-limit": "unlimited"} および {"error-limit": 1} が正しい使用方法です。

 

ファイルパスよりも、ファイル URI が奨励され、スラッシュを使用します。 Windows ファイルパスは、使用されると、バックスラッシュを使用します。更に、 Windows ファイルパスバックスラッシュは、JSON 内ではエスケープする必要があります。 (バックスラッシュのエスケープと共に。 ですから以下のようになります "c:\\dir\\filename")。  ファイル URI および ファイルパスは、文字列であり、かっこで囲まれる必要があることに注意してください。

 

 

以下がオプション付きのサンプルです。 (input または xslt-version などの) オプションの一部には、オプションの値を取る場合がありますが、( param など) 他はキー値ペアなどを取るため、異なる構文を必要とします。

 

{

   "command": "xslt",

   "args": [

           "file:///C:/Work/Test.xslt"

     ],

   "options": {

              "input": "file:///C:/Work/Test.xml",

              "xslt-version": 1,

              "param": {

                       "key": "myTestParam",

                       "value": "SomeParamValue"

                       },

              "output": "file:///C:/temp/out2.xml"

              }

}

 

 

下のサンプルは、 3 つめの型のオプションを表示しています。(下では、 xsd オプションで表示されるように)値の配列の型です。この場合、使用される構文はJSON 配列です。

 

{

   "command": "xsi",

   "args": [

           "file:///C:/Work/Test.xml"

           ],

   "options": {

              "xsd" : ["file:///C:/Work/File1.xsd", "file:///C:/Work/File2.xsd"]

              }

}

 

 

 

POST リクエストを使用してファイルを更新する

処理するファイルは、 POST リクエストの本文の中でアップロードすることができます。この場合、 POST リクエストは以下のように作成される必要があります。

 

 

 

リクエストヘッダー

リクエストヘッダー内で、 Content-Type を以下のように設定します: multipart/form-data そして、任意の文字列を境界として設定します。サンプルヘッダー:

 

Content-Type: multipart/form-data; boundary=---PartBoundary

 

この境界の目的は、リクエストの本文内で異なるフォームデータの部分に境界を設定するためです。 (以下を参照).

 

 

 

リクエスト本文: メッセージ パート

リクエストの本文は、 次のフォームデータの部分を持ち、 リクエストヘッダー 内で指定された境界文字列で区切られています(上を参照):

 

必須のフォームデータの部分:リクエストされた処理アクションを指定する、 msg および、 msg フォームデータパート内で指定されるコマンドの引数としてアップロードされるファイルを含む、 args。 下のリストを参照してください。
任意のフォームデータの部分: msg または args フォームデータパート内のファイルから参照されるファイルを含む additional_files。 更に、コマンドのオプションから名前の付けられたフォームデータの部分は、アップロードされるファイルを含むことができます。

 

メモ:        全てのアップロードされたファイルは、単一の仮想ディレクトリで作成されます。

 

 

 

コードに関する詳細はサンプル-1 (コールアウト付き) : XML の検証 およびサンプル-2: カタログを使用したスキーマ検索を参照してください。

 

ZIP アーカイブのアップロード

ZIP アーカイブもアップロードすることができます。 ZIP 内のファイルは additional-files スキームを利用して参照することができます。例えば:

 

additional-files:///mybigarchive.zip%7Czip/biginstance.xml

 

 

メモ:|zip/ パートでは、パイプ | シンボルが直接許可されていないため、 URI RFC に対して準拠するために %7Czip/ のような URI-エスケープ文字が必要です。glob パターン (* および ?) の使用は許可されています。ですから、以下に類似したものを ZIP アーカイブ内のすべての XML ファイルを検証するために使用することができます:

{"command": "xsi", "args": ["additional-files:///mybigarchive.zip%7Czip/*.xml"], "options": {...}}

 

 

サンプルコードのリストはサンプル-3: ZIP アーカイブの使用を参照してください。

 


(C) 2019 Altova GmbH