KiiObject の作成
ここでは、KiiObject を新規に作成する方法を説明します。KiiObject の内部に格納する JSON ドキュメントを設定する方法は、JSON ドキュメントの設定 を参照してください。
KiiObject の作成
ユーザースコープに存在する "mydata" Bucket 内に KiiObject を作成する例を以下に示します。
curl -v -X POST \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/vnd.{APP_ID}.mydata+json" \
"https://api-jp.kii.com/api/apps/{APP_ID}/users/me/buckets/{BUCKET_ID}/objects" \
-d '{"score": 1800, "name": "game1"}'
KiiObject のメディアタイプには "application/json" か "application/vnd.{APP_ID}.{DATA_TYPE}" が指定できます。後者の場合、{DATA_TYPE} には任意の値が利用可能です。
KiiObject の作成が成功すると、Kii Cloud は以下のように KiiObject ID と作成時間(UNIX 時間、ミリ秒、UTC)をレスポンスとして返します。
< HTTP/1.1 201 Created
< Server: Apache-Coyote/1.1
< Location: https://api-jp.kii.com/api/apps/{APP_ID}/users/{USER_ID}/buckets/{BUCKET_ID}/objects/{OBJECT_ID}
< ETag: "1"
< Content-Type: application/vnd.kii.ObjectCreationResponse+json
< Transfer-Encoding: chunked
< Date: Mon, 14 May 2012 23:45:14 GMT
<
{
"objectID" : {OBJECT_ID},
"createdAt" : 1337039114613,
"dataType" : "application/vnd.{APP_ID}.mydata+json"
}
ID を指定して KiiObject を作成
作成された KiiObject には自動的に ID が付与されますが、明示的に ID を指定して KiiObject を作成することもできます。
以下に、 KiiObject を ID を指定して作成する例を挙げます。
curl -v -X PUT \
-H "Authorization: Bearer {ACCESS_TOKEN}" \
-H "Content-Type: application/vnd.{APP_ID}.mydata+json" \
"https://api-jp.kii.com/api/apps/{APP_ID}/users/me/buckets/{BUCKET_ID}/objects/{OBJECT_ID}" \
-d '{"score": 1800, "name": "game1"}'
KiiObject の作成が成功すると、Kii Cloud は以下のように 作成時間と更新時間(UNIX 時間、ミリ秒、UTC)をレスポンスとして返します。
< HTTP/1.1 201 Created
< Server: Apache-Coyote/1.1
< Location: https://api-jp.kii.com/api/apps/{APP_ID}/users/{USER_ID}/buckets/{BUCKET_ID}/objects/{OBJECT_ID}
< ETag: "1"
< Content-Type: application/vnd.kii.ObjectUpdateResponse+json;charset=UTF-8
< Date: Mon, 08 Dec 2014 02:16:50 GMT
<
{
"createdAt" : 1418005010468,
"modifiedAt" : 1418005010468
}
KiiObject アクセスのヒント
アプリケーションスコープに書き込めない:
アプリケーションスコープはすべてのユーザーや、ログイン前の匿名ユーザーの状態でも読み込めますが、書き込むにはユーザーのログインが必要です。もし、アプリでユーザーのログイン操作を省略したい場合は、匿名ユーザーのままアプリケーションスコープの ACL を変更するのではなく、仮ユーザー(Pseudo User)としてログインする設計をおすすめします。詳細は、仮ユーザー(Pseudo User) をご覧ください。
また、アプリケーションスコープの利用にはセキュリティの考慮も必要です。詳細は、セキュリティ をご覧ください。
書き込んだはずの KiiObject が参照できない:
Bucket のスコープが意図したとおりかどうか、ご確認ください。
書き込みと読み込みを異なるスコープで行うと、Bucket 名が同じであっても書き込んだ内容を取得できません。開発者ポータルのデータブラウザを使って読み込んだ場合でも、同様です。
たとえば、アプリケーションスコープの
myBucket
に作成したデータは、ユーザースコープのmyBucket
から読み込もうとしても、結果が得られません。