バイナリ

概要

バイナリインターフェースは以下の要素で構成されます。

注記:すべてのPUT / POSTリクエストに対して「accept」ヘッダーを使用する必要があります。そうでない場合は、空の応答本体が返されます。

バイナリコレクション

バイナリコレクション [application/vnd.com.nsn.cumulocity.managedObjectCollection+json]

名称 タイプ 発生回数 説明
self URI 1 このリソースへのリンク
managedObjects ManagedObject 0..n バイナリオブジェクトのリスト(下記参照)
statistics PagingStatistics 1 ページング統計に関する情報
prev URI 0..1 バイナリオブジェクトの前のページへのリンク(あれば)
next URI 0..1 バイナリオブジェクトの次のページへのリンク(あれば)

GET - バイナリコレクションの取得

応答本体: ManagedObjectCollection

要求されるロール: ROLE_INVENTORY_READ

リクエスト例:

GET /inventory/binaries
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1 200 OK
Content-Type: application/vnd.com.nsn.cumulocity.applicationCollection+json;ver=...
{
    "self" : "...",
    "next" : "...",
    "prev" : "...",
    "managedObjects": [
        {
            "self": "<<Object 1 URL>>",
            "id": "1",
            "name": "my_picture.png",
            "type": "image/png",
            ...
            "_attachments": {
              "my_picture.png": {
                "stub": true,
                "length": 211952,
                "digest": "md5-xyz==",
                "revpos": 2,
                "content_type": "image/png"
              }
            }
        },
        {
            "self": "<<Object 2 URL>>",
            "id": "2",
            "name": "my_compressed_file.zip",
            "type": "application/zip",
            ...
            "_attachments": {
              "my_compressed_file.zip": {
                "stub": true,
                "length": 21152,
                "digest": "md5-xyz==",
                "revpos": 2,
                "content_type": "application/zip"
              }
            }
        }
    ],
    "statistics": {
        "currentPage": 1,
        "pageSize": 5,
        "totalPages": 1
    }
}

POST - 新規バイナリのアップロード

リクエスト本体: Multipart

応答本体: Managed Object

要求されるロール: ROLE_INVENTORY_ADMIN or ROLE_INVENTORY_CREATE

バイナリをアップロードするには、次の3つのフォーム値を持つマルチパートが必要です。

リクエスト例:

POST /inventory/binaries
Host: ...
Authorization: Basic ...
Content-Type: multipart/form-data; boundary=--myBoundary

--myBoundary
Content-Disposition: form-data; name="object"

{
  "name":"my-file.pdf",
  "type":"application/pdf",
  ...
}
--myBoundary
Content-Disposition: form-data; name="filesize"

217152
--myBoundary
Content-Disposition: form-data; name="file"; filename="my-file.pdf"
Content-Type: application/pdf

<<file content>>
--myBoundary

応答例:

HTTP/1.1 201 Created
Content-Type: application/vnd.com.nsn.cumulocity.managedObject+json;ver=...
Location: <<URL of new managed object>>

{
  "self": "<<Object 3 URL>>",
  "id": "3",
  "name":"my-file.pdf",
  "type":"application/pdf",
  ...
}

バイナリ

GET - バイナリのダウンロード

応答本体: Binary

要求されるロール: ROLE_INVENTORY_READ

リクエスト例:

GET /inventory/binaries/<<binaryId>>
...

応答例:

HTTP/1.1 200 OK
Content-Type: <<depending on binary mime type>>
Content-Disposition: attachment; filename="myfile.ext"

...

PUT - バイナリの差し替え

リクエスト本体: Binary

応答本体: Managed Object

要求されるロール: ROLE_INVENTORY_ADMIN or ROLE_INVENTORY_CREATE

PUTリクエストは、マネージドオブジェクトに対応するバイナリのみを差し替えます。 マネージドオブジェクトに保存されたバイナリ情報を変更したい場合、マネージドオブジェクトの更新セクションに記載されている方法でマネージドオブジェクトを直接更新できます。

リクエスト例:

PUT /inventory/binaries/<<binaryId>>
Host: ...
Authorization: Basic ...
Content-Type: <<depending on binary mime type>>

...

DELETE - バイナリの削除

リクエスト本体: N/A.

応答メッセージ本体: N/A.

要求されるロール: ROLE_INVENTORY_ADMIN または ROLE_INVENTORY_CREATE

注記:このリクエストは、バイナリと、情報を含んだ関連マネージドオブジェクトを削除します。

リクエスト例:

DELETE /inventory/binaries/<<binaryId>>
Host: ...
Authorization: Basic ...

応答例:

HTTP/1.1  204 NO CONTENT