mixi Connect » mixi Graph API » 技術仕様 » mixiアプリ用API » Persistence API
Persistence API
Persistence APIとは、mixiアプリごとにユーザに関するデータ(永続化情報)をmixiサーバ上にKey-Value形式で格納する機能です。
ユーザ自身と友人のデータの読み込みも可能です。
ここでは、Persistence APIについて、その使用方法を説明します。
永続化情報については詳しくは情報を共有してみようをご参考ください。
事前に必要なもの
Persistence APIを利用するためには、以下の情報をすでに入手している必要があります。
- “mixi_apps2”スコープについて認可されたアクセストークン
上記以外のスコープで認可されたアクセストークンを使用して、Persistence APIにアクセスすることはできません。現状では、mixi_apps2スコープはmixiアプリやmixi API SDK for Android™、mixi API SDK for iOSからのみ利用することが可能です。
Persistence APIで提供される機能とスコープ
Persistence APIでは一つのスコープで全ての機能がまとめて提供されています。
スコープ | 機能 | メソッド |
---|---|---|
mixi_apps2 |
ユーザのデータの書き込み ユーザや友人のデータの読み込み ユーザのデータの削除 |
POST, PUT GET DELETE |
詳しくはmixiアプリのユーザ認可処理や、mixi API SDK for Android™の初期化と認可処理、mixi API SDK for iOSの初期化と認可処理をご参照ください。
データの登録
Persistence APIの登録機能により、ユーザに関するデータを保存することができます。
POST https://api.mixi-platform.com/2/apps/appdata/@me/@self PUT https://api.mixi-platform.com/2/apps/appdata/@me/@self
- POSTとPUTメソッドが対応されていますが、機能は同じになります。
リクエストボディとして、Key-Value情報を以下のようにapplication/json形式にて指定します。
{ "greeting" : "ようこそ!", "level" : "5" }
通常の場合は以下のレスポンスが返ってきます。
{ "response_code" : 200 }
エラーコード
状況 |
ステータス コード |
errorの値 | error_descriptionの値 | 補足 |
---|---|---|---|---|
リクエストのContent-Typeが未対応 | 400 | bad_request | Bad request | |
Key/Value指定が不正 | 400 | parameter_invalid | No key/value pairs | |
100個以上のKey/Value指定 | 413 | request_entity_too_large | Too many key/value pairs (max=最大Key数) | 同時に99個のKeyまで登録できます。 |
容量越え | 400 | parameter_invalid | Limit exceeded size quota (max=最大容量) | mixiアプリ・ユーザごとに合計10,000,000バイトを超える場合は発生します。 |
エラーが発生した場合のレスポンスについて、共通エラーコードをご参照ください。
データの取得
Persistence APIでは、以下の3つの区分でデータを取得することが可能です。
- ユーザ自身のデータの取得
- ユーザの全ての友人のデータの取得
- 指定のユーザ(ユーザ自身または友人)のデータの取得
取得するフィールド(Key)を指定することができます。
GET https://api.mixi-platform.com/2/apps/appdata/[User-ID]/[Group-ID]?fields=[フィールド一覧]
パラメータ | 指定する値 |
---|---|
User-ID | 取得したいユーザのID、もしくは認可ユーザ自身を示す“@me” |
Group-ID | “@self”または“@friends” |
fields |
取得したいデータをカンマ切れのKey一覧にて指定することができます。 “*”または“@all”は全てを意味します。デフォルトは全てです。 (fieldsは省略可) |
- fieldsのデフォルト値は“*”(全て)になります。
リクエストの例
GET https://api.mixi-platform.com/2/apps/appdata/@me/@self GET https://api.mixi-platform.com/2/apps/appdata/@me/@friends GET https://api.mixi-platform.com/2/apps/appdata/@me/@self?fields=greeting,level
データの削除
ユーザの指定のデータを削除することができます。ユーザ自身以外のデータの削除は不可能です。
DELETE https://api.mixi-platform.com/2/apps/appdata/@me/@self?fields=[フィールド一覧]
パラメータ | 指定する値 |
---|---|
fields |
削除したいデータをカンマ切れのKey一覧にて指定することができます。 “*”または“@all”は全てを意味します。デフォルトは全てです。 (fieldsは省略可) |
リクエストの例
DELETE https://api.mixi-platform.com/2/apps/appdata/@me/@self DELETE https://api.mixi-platform.com/2/apps/appdata/@me/@self?fields=greeting,level
共通エラーコード
もし処理に失敗した場合は、ステータスコード400番台または500番台と共に、そのエラーの内容を持つ以下のようなJSON文字列が返却されます。
状況 |
ステータス コード |
errorの値 | error_descriptionの値 | 補足 |
---|---|---|---|---|
認証情報が不正(selectorが無効) | 403 | permission_denied | Permission denied | |
更新数制限(180秒間に180回) | 503 | service_unavailable | appdata update frequency is too high | 発生した場合はRetry-Afterヘッダーで指定される秒数を待つ必要があります。 |
不正値(値がnull、配列、ハッシュなど) | 400 | bad_request | No value associated with specified key. | 値は文字列をご利用ください。 |
{ "error" : "status_conflicted", "error_description" : "status cannot be changed" }
利用制限
- 1つのKeyに対する文字列は、65535バイトまでとなります。
- 同時に99個のKeyまで登録できます。
- mixiアプリ・ユーザごとに合計10,000,000バイトまでとなります。
- 180秒に180回まで更新(登録・削除)リクエストができます。mixiアプリ・ユーザごとの制限になります。
※ 全角文字は3バイト(UTF-8)計算となります。
※ RESTful APIと共通の制限となります。
ページング、表現形式
Persistence APIは、ページングは未サポートとなります。サポートされる表現形式は、JSON形式のみです。