JSON リクエスト
クライアントから送られるリクエスト body は JSON フォーマットであり、下記のテンプレートに従います。
{
"status": "<ASB Hex format>",
"printerMAC": "<Ethernet MAC address>",
"uniqueID": "<server assigned ID>",
"statusCode": " <description>",
"printingInProgress": bool,
"clientAction": [{
"request": "<request type>",
"result": "<request result>"
}],
"barcodeReader": [{
"name": "<device logical name>",
"status": { "connected": bool, "claimed": bool },
"scan": [ {"data": "<scanned barcode character sequence>",
"symbology": "<symbology of scanned barcode>"}]
}],
"display": [{
"name": "<device logical name>",
"status": {"connected": bool}
}]
}
“statusCode”以外の全てのフィールドは任意オプションであり、必要により設定された場合にのみ特定されますが、NULL である場合もあるため、サーバーはどちらの場合も扱うことができる必要があります。
"clientAction"フィールドはサーバーが設定の詳細の問い合わせのために"clientAction"リクエストを送ったときに設定されます。 (例えば ファームウェアバージョンなど)、またはエンコードされていないプリンタ装置の状態イベントをサーバーに通知するためにリクエストを送ったときに設定されます。
- "status" - Star ASB 形式にてサーバーへプリンタ状態情報を提供します。これが提供されない場合、サーバーは"2"から始まる statusCode であればプリンタがオンラインとみなすことが出来ます。(例: statusCode が"200" の場合プリンタはオンライン)
- "printerMAC" - プリンタの MAC アドレスをサーバーに提供します。 これは原則的にクライアントを認識するための固有情報であり、必ずしも MAC アドレスである必要はなく、複数のクライアントがサーバーへ接続する場合の要求になります。例えば、mC-Print2/3 では Ethernet MAC アドレスを使用しています。
- "uniqueID" - サーバーに ID が割り当てられている場合の ID。この Field はサーバーが ID を割り当てている場合にのみ含まれます。
- "statusCode" - 3 桁の status code (http status codes に基づきますが互換ではありません。)及びプリンタ状態の記述を提供します。 典型的にこれは"200 OK"でプリンタがオンラインかつ印刷準備完了を示します。印刷ジョブ失敗またはオフラインの場合、エラー状態が渡されます。詳細はプリンタステータスコード章を参照ください。例えばプリンタが DELETE リクエストを送るときなど、URL パラメータとして StatusCode を送る場合があるため、 CloudPRNT クライアントからの Status codes は URL エンコードされています。
- "printingInProgress" - boolean値によって印刷操作が現在進行中であるかを示します。これは印刷操作中にCloudPRNTサーバーにポーリングを発行するCloudPRNTクライアントによって提供されます。これにより、例えばTrue値を示した場合には”jobReady”レスポンスフィールドを無視することができ、サーバーにて印刷ジョブが使用可能かどうかデータベース等の確認をすることを避けられます。また、必要に応じてユーザーへのステータス表示にも使うことができます。ただし、このフィールドはオプションであり全てのCloudPRNTクライアントに含まれない可能性があるので、印刷が完了したことを示すシグナルとして使用しないでください(印刷完了に関してはGET/DELETE及びPOSTリクエストを監視してください)。
- "clientAction" - サーバー要求に対する応答列。Client Action 章を参照ください。応答の必要がない場合、このフィールドは NULL 値になります。
- "barcodeReader" - 利用可能なバーコードリーダーデバイスを表すオブジェクトの配列。 詳細は周辺機器制御 バーコードリーダー章を参照してください。
- "display" - 利用可能なカスタマーディスプレイデバイスを表すオブジェクトの配列。 詳細は周辺機器制御 カスタマーディスプレイ章を参照してください。
クライアント POST リクエストサンプル
- 通常のクライアントリクエストは、プリンタステータスおよび MAC アドレスを含みます。
{
"status": "23 6 0 0 0 0 0 0 0 ",
"printerMAC": "00:11:e5:06:04:ff",
"statusCode": "200%20OK",
"clientAction": null
}
- サーバーから"clientAction"要求を利用してポーリングインターバルやサポートされているエンコードのリスト、クライアントに対する“uniqueID”(例では”Star1”)の要求を含むレスポンスを受け取った後送信されるクライアントリクエストは以下になります。
{
"status": "23 6 0 0 0 0 0 0 0 ",
"printerMAC": "00:11:e5:06:04:ff",
"uniqueID": "Star1",
"statusCode": "200%20OK",
"clientAction": [
{"request":"GetPollInterval","result":"10"},
{"request":"Encodings","result":"image/png; image/jpeg; application/vnd.star.raster;
application/vnd.star.line; application/vnd.star.linematrix; text/plain; application/octet-stream"}
]
}