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 から読み込もうとしても、結果が得られません。