Platioは、レコードに値を保存するときに幾つかの型を使用します。例えば、テキストを保存するにはString型が使われ、数値を保存するにはNumber型が、画像やビデオのような添付ファイルを保存するにはAttachment型が使われます。
Platio StudioでMiniAppを作るときには、テキスト、通貨、画像のような型のフィールドをデータポケットに追加します。Platio API プログラミングガイドにあるように、フィールドを作成すると、そのフィールドの値を保存するためのカラムが作成されます。この時、カラムの型は、フィールドの型に基いて決められます。例えば、テキストフィールドを作成すると、String型のカラムが作成されます。通貨フィールドにはNumber型のカラムが、画像フィールドにはAttachment型のカラムが作成されます。
カラムの型を確認するには、データビューアーの開発者ページを参照するか、アプリケーション定義を取得してください。
それぞれの型の値は、専用のJSON形式で表現されます。例えば、String型の値は以下のようになります。
{
  "type": "String",
  "value": "This is a string value."
}Attachment型の値は以下のようになります。
{
  "type": "Attachment",
  "id": "ac2lzz2afdvguze5znhselxd4oe",
  "name": "photo.jpeg",
  "contentType": "image/jpeg",
  "size": 1542161
}レコードを取得すると、これらの値がそれぞれのレコードに含まれます。レコードを作成・更新するときには、正しい形式で値を作成する必要があります。
値の集合を作るときには、カラムIDをキー、そのカラムの値を値とするオブジェクトを作成します。
{
  "values": {
    "c002c2c0": {
      "type": "String",
      "value": "Scott Tiger"
    },
    "cfe0266a": {
      "type": "Attachment",
      "id": "ac2lzz2afdvguze5znhselxd4oe",
      "contentType": "image/jpeg",
      "name": "image.jpeg",
      "size": 254179
    },
    "c915a0bc": {
      "type": "Number",
      "value": 28
    }
  }
}特定のカラムの値を含めたくない場合には、そのカラムをオブジェクトに含めないようにします。以下の例では、c002c2c0というIDのカラムの値のみを設定し、その他のカラムには値を設定していません。
{
  "values": {
    "c002c2c0": {
      "type": "String",
      "value": "Scott Tiger"
    }
  }
}値自体や、値の属性にnullを設定することはできません。以下のようなオブジェクトを使用するとエラーになります。
{
  "values": {
    "c002c2c0": {
      "type": "String",
      "value": null
    },
    "c915a0bc": null
  }
}String型の値は、任意の文字列を表現します。
文字列中の改行は、LF (0x0A)になります。APIでレコードを作成・更新する時に、改行をCR/LF (0x0D 0x0A)で指定した場合、LFに正規化されます。複数行テキストフィールド以外のフィールドの値として改行を含む文字列を指定した場合の動作は保証されません。
{
  "type": "String",
  "value": "String value"
}String型のカラムでレコードをソートすると、文字列値自体で大文字小文字を区別してソートされます。
文字列型になります。デフォルト値は空文字列です。
Number型の値は、任意の有限な数値を表現します。整数、または浮動小数が使用できます。
{
  "type": "Number",
  "value": 123456
}Number型のカラムでレコードをソートすると、数値自体でソートされます。
数値型になります。デフォルト値は0です。
Boolean型の値は、真偽値を表現します。
{
  "type": "Boolean",
  "value": true
}Boolean型のカラムでレコードをソートすると、真偽値自体でソートされます。falseはtrueよりも小さいと判断されます。
真偽値型になります。デフォルト値はfalseです。
DateTime型の値は、日時を表現します。JSON表現では、ISO
8601のYYYY-MM-DD'T'hh:mm:ss.sssZ形式でフォーマットされます。
{
  "type": "DateTime",
  "value": "2016-05-18T11:16:34.348Z"
}レコードを作成・更新する時には、ISO 8601形式に加えて、POSIXタイム形式で指定することができます。
{
  "type": "DateTime",
  "value": 1510625619
}この形式でレコードを作成・更新した場合でも、取得する時にはISO 8601形式で返されることに注意してください。
DateTime型のカラムでレコードをソートすると、日時の値自体でソートされます。
日時型になります。デフォルト値はundefinedです。
Date型の値は、日付を表現します。JSON表現では、ISO
8601のYYYY-MM-DD形式でフォーマットされます。
{
  "type": "Date",
  "value": "2016-05-15"
}Date型のカラムでレコードをソートすると、日付の値自体でソートされます。
YYYY-MM-DD形式の文字列型になります。デフォルト値はundefinedです。
Time型の値は、時間を表現します。JSON表現では、ISO
8601のhh:mm:ss形式でフォーマットされます。
{
  "type": "Time",
  "value": "11:16:34"
}Time型のカラムでレコードをソートすると、時間の値自体でソートされます。
HH:mm:ss形式の文字列型になります。デフォルト値はundefinedです。
Location型の値は、緯度と経度、省略可能な高度で、位置を表現します。すべての値は浮動小数です。
{
  "type": "Location",
  "latitude": 35.685,
  "longitude": 139.7513889,
}{
  "type": "Location",
  "latitude": 35.685,
  "longitude": 139.7513889,
  "altitude": 54.3
}Location型のカラムでレコードをソートすることはできません。
latitude, longitude,
altitudeプロパティを持つオブジェクト型になります。デフォルト値はundefinedです。
User型の値は、IDと名前でユーザーを表現します。
{
  "type": "User",
  "id": "uf598c3f",
  "name": "user1"
}User型のカラムでレコードをソートすると、ユーザーの名前で大文字小文字を区別してソートされます。
ユーザー名を表す文字列型になります。デフォルト値はundefinedです。
Attachment型の値は、ID、名前、内容の形式、サイズで、添付ファイルを表現します。
Attachment型の値を作成するには、予めファイルを添付ファイルとしてアップロードし、返されたID、名前、内容の形式、サイズを使用します。
{
  "type": "Attachment",
  "id": "ac2lzz2afdvguze5znhselxd4oe",
  "name": "photo.jpeg",
  "contentType": "image/jpeg",
  "size": 1542161
}Attachment型のカラムでレコードをソートすると、添付ファイルの名前で大文字小文字を区別してソートされます。
ファイル名を表す文字列型になります。デフォルト値はundefinedです。
複合型は、内部に複数の値を持ちます。
Object型の値は、幾つかのキーから値へのマッピングを表現します。単純型が内部の値として使用できます。
各Object型のカラムに対して、キーの名前とその型を定義するスキーマが存在します。Object型のカラムのスキーマを確認するには、データビューアーの開発者ページを参照してください。
{
  "type": "Object",
  "value": {
    "systolic": {
      "type": "Number",
      "value": 121
    },
    "diastolic": {
      "type": "Number",
      "value": 53
    },
    "pulseRate": {
      "type": "Number",
      "value": 66
    }
  }
}アプリケーション定義を取得することでも、カラムのスキーマを取得することができます。アプリケーション定義には、スキーマを含む、カラムの定義が含まれています。
{
  "id": "cd234a8a",
  "name": "Blood Pressure",
  "type": "Object",
  "scheme": {
    "keys": [
      {
        "name": "systolic",
        "type": "Number"
      },
      {
        "name": "diastolic",
        "type": "Number"
      },
      {
        "name": "pulseRate",
        "type": "Number"
      }
    ]
  },
  "unique": false,
  "sortable": false,
  "searchable": false
}Object型のカラムでレコードをソートすることはできません。
オブジェクト型になります。各キーの値もそれぞれの型に合わせて変換されます。デフォルト値はundefinedです。
Array型の値は、値の配列を表現します。配列中の各値は同じ型である必要があります。単純型、またはObject型が、内部の値として使用できます。
各Array型のカラムに対して、配列中の値の型を定義するスキーマが存在します。Array型のカラムのスキーマを確認するには、データビューアーの開発者ページを参照してください。
{
  "type": "Array",
  "value": [
    {
      "type": "Number",
      "value": 10.1
    },
    {
      "type": "Number",
      "value": 14.34
    }
  ]
}{
  "type": "Array",
  "value": [
    {
      "type": "Object",
      "value": {
        "timestamp": {
          "type": "DateTime",
          "value": "2017-05-03T11:32:65.312Z"
        },
        "temperature": {
          "type": "Number",
          "value": 21.3
        }
      }
    },
    {
      "type": "Object",
      "value": {
        "timestamp": {
          "type": "DateTime",
          "value": "2017-05-04T11:32:65.312Z"
        },
        "temperature": {
          "type": "Number",
          "value": 18.8
        }
      }
    }
  ]
}アプリケーション定義を取得することでも、カラムのスキーマを取得することができます。アプリケーション定義には、スキーマを含む、カラムの定義が含まれています。
Array型の値が単純型の値を含む場合、スキーマは以下のようになります。
{
  "id": "cd234a8a",
  "name": "Values",
  "type": "Array",
  "scheme": {
    "element": {
      "type": "Number"
    }
  },
  "unique": false,
  "sortable": false,
  "searchable": false
}Array型の値がObject型の値を含む場合、スキーマにはそのObject型のスキーマが含まれます。
{
  "id": "cd234a8a",
  "name": "Values",
  "type": "Array",
  "scheme": {
    "element": {
      "type": "Object",
      "scheme": {
        "keys": [
          {
            "name": "timestamp",
            "type": "DateTime"
          },
          {
            "name": "temperature",
            "type": "Number"
          }
        ]
      }
    }
  },
  "unique": false,
  "sortable": false,
  "searchable": false
}Array型のカラムでレコードをソートすることはできません。
配列型になります。各値もそれぞれの型に合わせて変換されます。デフォルト値はundefinedです。
参照型は、アプリケーション内の異なるコレクションにあるレコードを参照するために使用されます。
ReferenceString型の値は、レコードとそのレコード内のString型の値への参照を表現します。
各ReferenceString型のカラムに対して、どのコレクションのどのカラムを参照するかを定義するスキーマが存在します。ReferenceString型のカラムのスキーマを確認するには、データビューアーの開発者ページを参照してください。
ReferenceString型の値は、参照先のレコードを識別するための、コレクションID、レコードのID、レコードのハッシュを持ちます。さらに、参照先のレコードの特定のカラムの値を参照するために、カラムIDと実際の値を持ちます。
{
  "type": "ReferenceString",
  "collectionId": "t5957d3a",
  "columnId": "c89c762f",
  "recordId": "refo5otf6fbb2lhgnwvhbc7jg5i",
  "recordHash": "f82b820234d79d99082318996ecc1c95cace3753",
  "value": {
    "type": "String",
    "value": "String value"
  }
}参照先のレコードが、そのカラムの値を持たない場合には、値を持ちません。
{
  "type": "ReferenceString",
  "collectionId": "t5957d3a",
  "columnId": "c89c762f",
  "recordId": "refo5otf6fbb2lhgnwvhbc7jg5i",
  "recordHash": "f82b820234d79d99082318996ecc1c95cace3753"
}ReferenceString型の値を設定する時には、valueとrecordHashの指定を省略し、type,
collectionId, columnId,
recordIdのみを指定することができます。valueとrecordHashはサーバーで補完されます。
ReferenceString型のカラムが、どのコレクションのどのカラムを参照しているのかは、アプリケーション定義を取得することでも確認できます。アプリケーション定義には、スキーマを含む、カラムの定義が含まれています。
{
  "id": "cd234a8a",
  "name": "Author",
  "type": "ReferenceString",
  "scheme": {
    "collectionId": "t5957d3a",
    "columnId": "c89c762f"
  },
  "unique": false,
  "sortable": true,
  "searchable": false
}ReferenceString型のカラムでレコードをソートすると、参照先のString型の値でソートされます。
文字列型になります。デフォルト値は空文字列です。
ReferenceNumber型の値は、レコードとそのレコード内のNumber型の値への参照を表現します。
各ReferenceNumber型のカラムに対して、どのコレクションのどのカラムを参照するかを定義するスキーマが存在します。ReferenceNumber型のカラムのスキーマを確認するには、データビューアーの開発者ページを参照してください。
ReferenceNumber型の値は、参照先のレコードを識別するための、コレクションID、レコードのID、レコードのハッシュを持ちます。さらに、参照先のレコードの特定のカラムの値を参照するために、カラムIDと実際の値を持ちます。
{
  "type": "ReferenceNumber",
  "collectionId": "t915a0bc",
  "columnId": "c002c2c0",
  "recordId": "ri5f3cykexfbkzk7ohzqm2oocni",
  "recordHash": "8b96a445815ca366aac07c70c722c9fdaa5bc932",
  "value": {
    "type": "Number",
    "value": 1234.56
  }
}参照先のレコードが、そのカラムの値を持たない場合には、値を持ちません。
{
  "type": "ReferenceNumber",
  "collectionId": "t915a0bc",
  "columnId": "c915a0bc",
  "recordId": "ri5f3cykexfbkzk7ohzqm2oocni",
  "recordHash": "8b96a445815ca366aac07c70c722c9fdaa5bc932"
}ReferenceNumber型の値を設定する時には、valueとrecordHashの指定を省略し、type,
collectionId, columnId,
recordIdのみを指定することができます。valueとrecordHashはサーバーで補完されます。
ReferenceNumber型のカラムが、どのコレクションのどのカラムを参照しているのかは、アプリケーション定義を取得することでも確認できます。アプリケーション定義には、スキーマを含む、カラムの定義が含まれています。
{
  "id": "cd234a8a",
  "name": "Author ID",
  "type": "ReferenceNumber",
  "scheme": {
    "collectionId": "t915a0bc",
    "columnId": "c915a0bc"
  },
  "unique": false,
  "sortable": true,
  "searchable": false
}ReferenceNumber型のカラムでレコードをソートすると、参照先のNumber型の値でソートされます。
数値型になります。デフォルト値は0です。
ReferenceUser型の値は、レコードとそのレコード内のUser型の値への参照を表現します。
各ReferenceUser型のカラムに対して、どのコレクションのどのカラムを参照するかを定義するスキーマが存在します。ReferenceUser型のカラムのスキーマを確認するには、データビューアーの開発者ページを参照してください。
ReferenceUser型の値は、参照先のレコードを識別するための、コレクションID、レコードのID、レコードのハッシュを持ちます。さらに、参照先のレコードの特定のカラムの値を参照するために、カラムIDと実際の値を持ちます。
{
  "type": "ReferenceUser",
  "collectionId": "td5949fa",
  "columnId": "c79bc617",
  "recordId": "rvwoel2tefbd6zgx6qxqeogl4ey",
  "recordHash": "2fbd3fb6a9b6a76e9686dbcef38ec9b08b5f6787",
  "value": {
    "type": "User",
    "id": "uf598c3f",
    "name": "user1"
  }
}参照先のレコードが、そのカラムの値を持たない場合には、値を持ちません。
{
  "type": "ReferenceUser",
  "collectionId": "td5949fa",
  "columnId": "c79bc617",
  "recordId": "refo5otf6fbb2lhgnwvhbc7jg5i",
  "recordHash": "2fbd3fb6a9b6a76e9686dbcef38ec9b08b5f6787"
}ReferenceUser型の値を設定する時には、valueとrecordHashの指定を省略し、type,
collectionId, columnId,
recordIdのみを指定することができます。valueとrecordHashはサーバーで補完されます。
ReferenceUser型のカラムが、どのコレクションのどのカラムを参照しているのかは、アプリケーション定義を取得することでも確認できます。アプリケーション定義には、スキーマを含む、カラムの定義が含まれています。
{
  "id": "cd234a8a",
  "name": "Author",
  "type": "ReferenceUser",
  "scheme": {
    "collectionId": "td5949fa",
    "columnId": "c79bc617"
  },
  "unique": false,
  "sortable": true,
  "searchable": false
}ReferenceUser型のカラムでレコードをソートすると、参照先のUser型の値でソートされます。
ユーザー名を表す文字列型になります。デフォルト値はundefinedです。