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型の値は、任意の文字列を表現します。
{
"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
です。