| @@ -23,13 +23,22 @@ | |||
| APIを使用する際のいくつかのルールです。 | |||
| 1. UIDを列挙したり、データベースを埋めるために大量のリクエストを実行しようとしないでください。UIDは何億もあり、このAPIでこれを実行することはできません。後日、バッチデータを提供することがあります。 | |||
| 1. UIDを列挙したり、データベースを埋めるために大量のリクエストを実行しようとしないでください。 | |||
| UIDは何億もあり、このAPIでこれを実行することはできません。後日、バッチデータを提供することがあります。 | |||
| 2. リクエストにはカスタムした`User-Agent` ヘッダを設定してください。そうすることで、リクエストをより良く追跡し、必要に応じてあなたを助けることができます。 | |||
| 2. リクエストにはカスタムした`User-Agent` ヘッダを設定してください。 | |||
| そうすることで、リクエストをより良く追跡し、必要に応じてあなたを助けることができます。 | |||
| 3. UIDのエンドポイントには動的な速度制限があります。あまりに速くリクエストすると、応答時間が遅くなり、最終的にはステータスコード429が返されます。この場合、速度を落とすか、私に連絡してレートリミットを増やすことが可能かどうかを確認する必要があります。殆どの場合、これは必要ではなく、最適化されていないコードが原因です。 | |||
| 3. UIDのエンドポイントには動的な速度制限があります。 | |||
| あまりに速く再リクエストすると、応答時間が遅くなり、最終的にはステータスコード429が返されます。 | |||
| この場合、速度を落とすか、私に連絡してレートリミットを増やすことが可能かどうかを確認する必要があります。 | |||
| 殆どの場合、これは必要ではなく、最適化されていないコードが原因です。 | |||
| 4. 全てのUIDリクエストには`ttl`というフィールドを返します。このフィールドは「リクエストされたUIDに対して次の更新(Showcase)が行われるまでの秒数」です。このフィールドがなくなるまで、エンドポイントはキャッシュされたデータを返しますが、繰り返しヒットするとレートリミットを消費してしまいます。リクエスト時に`ttl`のタイムアウトを設けてデータをキャッシュするか、`ttl`が切れるまでそのUIDへのリクエストを行わないようにすることを試してみてください。これにはRedisをお勧めします。 | |||
| 4. 全てのUIDリクエストには`ttl`というフィールドを返します。 | |||
| このフィールドは「リクエストされたUIDに対して次の更新(Showcase)が行われるまでの秒数」です。 | |||
| このフィールドがなくなるまで、エンドポイントはキャッシュされたデータを返しますが、繰り返しヒットするとレートリミットを消費してしまいます。 | |||
| リクエスト時に`ttl`のタイムアウトを設けてデータをキャッシュするか、`ttl`が切れるまでそのUIDへのリクエストを行わないようにすることを試してみてください。 | |||
| これにはRedisをお勧めします。 | |||
| もしデータの扱いに困ったら、[Discordサーバー](https://discord.gg/PcSZr5sbn3)でヘルプを受けられます。 | |||
| @@ -39,13 +48,17 @@ APIを使用する際のいくつかのルールです。 | |||
| > https://enka.network/api/uid/618285856/ | |||
| レスポンスには `playerInfo` と `avatarInfoList` が含まれます。`playerInfo`はゲームアカウントに関する基本的なデータです。もし `avatarInfoList` が見つからない場合は、このゲームアカウントはプロフィールが非公開に設定されているか、キャラクターが設定されていないことを意味します。 | |||
| レスポンスには `playerInfo` と `avatarInfoList` が含まれます。 | |||
| `playerInfo`はゲームアカウントに関する基本的なデータです。 | |||
| もし `avatarInfoList` が見つからない場合は、このゲームアカウントはプロフィールが非公開に設定されているか、キャラクターが設定されていないことを意味します。 | |||
| #### プレイヤー情報をのみを取得 | |||
| > https://enka.network/api/uid/618285856/?info | |||
| リクエストに `?info` を付けることで、`playerInfo` のみをリクエストすることができます。もし `playerInfo` だけが必要であれば、このエンドポイントを使用してください。全てのデータを取得するよりもずっと速く取得する事が出来ます。 | |||
| リクエストに `?info` を付けることで、`playerInfo` のみをリクエストすることができます。 | |||
| もし `playerInfo` だけが必要であれば、このエンドポイントを使用してください。 | |||
| 全てのデータを取得するよりもずっと速く取得する事が出来ます。 | |||
| さらに、以下の場合にのみ、両方のレスポンスに `owner` オブジェクトが含まれます。 | |||
| @@ -71,7 +84,8 @@ APIを使用する際のいくつかのルールです。 | |||
| ### プロファイルエンドポイント | |||
| ウェブサイト上でアカウント(プロフィール)を作成し、そのアカウントに複数のゲームアカウントを設定することが可能です。ユーザーは、認証ページに記載された認証コードによって、そのアカウントが自分のものであることを証明する必要があります。 | |||
| ウェブサイト上でアカウント(プロファイル)を作成し、そのアカウントに複数のゲームアカウントを設定することが可能です。 | |||
| ユーザーは、認証ページに記載された認証コードによって、そのアカウントが自分のものであることを証明する必要があります。 | |||
| ユーザーは、好きな名称でビルドを「スナップショット」することができ、「セーブドビルド」と呼ばれています。 | |||
| @@ -81,7 +95,9 @@ APIを使用する際のいくつかのルールです。 | |||
| > https://enka.network/api/profile/Algoinde/hoyos/ | |||
| 「hoyos」- ゲームアカウントとそのメタデータのリストを取得します。これは `認証状態` 且つ `公開状態` であるアカウントのみを返します。 (ユーザーはアカウントを隠すことができます。認証されていないアカウントはデフォルトで隠されます。)。レスポンスの各キーはmihoyoの一意な識別子であり、この識別子を使って後続のリクエストで実際にキャラクター/ビルドの情報を取得する必要があります。 | |||
| 「hoyos」- ゲームアカウントとそのメタデータのリストを取得します。 | |||
| これは `認証状態` 且つ `公開状態` であるアカウントのみを返します(ユーザーはアカウントを隠すことができます。認証されていないアカウントはデフォルトで隠されます)。 | |||
| レスポンスの各キーはmihoyoの一意な識別子であり、この識別子を使って後続のリクエストで実際にキャラクター/ビルドの情報を取得する必要があります。 | |||
| > https://enka.network/api/profile/Algoinde/hoyos/4Wjv2e/ | |||
| @@ -89,11 +105,14 @@ APIを使用する際のいくつかのルールです。 | |||
| > https://enka.network/api/profile/Algoinde/hoyos/4Wjv2e/builds/ | |||
| 指定されたゲームアカウントの保存されたビルドを返します。これは配列のオブジェクトで、キーはキャラクターの `avatarId` で、配列のオブジェクトは与えられたキャラクターの異なるビルドを順不同で表します(ただし、表示の為に並べる必要のある `order` フィールドを持ちます)。 | |||
| 指定されたゲームアカウントの保存されたビルドを返します。これはオブジェクトの配列で、キーはキャラクターの `avatarId` です。 | |||
| オブジェクトの配列は与えられたキャラクターの異なるビルドを順不同で表します(ただし、表示の為に順序が記載された `order` フィールドを持ちます)。 | |||
| ビルドに `live: true` フィールドがある場合、それは「保存」されたビルドではなく、単に「更新」をクリックしたときにショーケースから取得されたものであることを意味します。更新すると、古い`live`ビルドはすべて削除され、新しいビルドが作成されます。この更新をいつ行うかは、ユーザーだけが決めることができます。 | |||
| ビルドに `live: true` フィールドがある場合、それは「保存」されたビルドではなく、単に「更新」をクリックした時に取得されたものであることを意味します。 | |||
| 更新すると、古い`live`ビルドはすべて削除され、新しいビルドが作成されます。この更新をいつ行うかは、ユーザーだけが決めることができます。 | |||
| [UID エンド ポイント](#UIDエンドポイント)で説明したように、UIDリクエストを行うと、`owner`オブジェクトを取得することができます。このオブジェクトのフィールドを使用して、URLを作成することができます。 | |||
| [UID エンド ポイント](#UIDエンドポイント)で説明したように、UIDリクエストを行うと、`owner`オブジェクトを取得することができます。 | |||
| このオブジェクトのフィールドを使用して、URLを作成することができます。 | |||
| `https://enka.network/api/profile/{owner.username}/hoyos/{owner.hash}/builds/` | |||