> For the complete documentation index, see [llms.txt](https://docs.ggwp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ggwp.com/jp/apidokyumento-kontekisuto/pureiyraberu.md).

# プレイヤーラベル

## 説明

この **プレイヤーラベルAPI** 特定のユーザーに割り当てられたラベルを管理するためのエンドポイントを提供します。\
ラベルは短い識別子です（例： `"label1"`, `"label2"`) ユーザーを分類またはタグ付けするものです。

#### 要点

* 各ユーザーは **最大5つの一意のラベルを持つことができます**.&#x20;
* ラベルは大文字と小文字を区別します。
* ラベルは、英数字、ハイフン（-）、またはアンダースコア（\_）のみを含む文字列でなければなりません。
* ラベルは最大32文字までです

## API

* `GET` /users/{user\_id}/v1/labels

  * 指定された user\_id のすべてのラベルを取得します
  * **パラメータ**
    * **パスパラメータ**
      * `user_id`：ユーザーの一意の識別子。
  * **サンプル呼び出し**

    ```
    curl --request GET 'https://api.ggwp.com/users/test-user/v1/labels' \\
    --header 'x-api-key: api_key'
    ```
  * **レスポンス 200**

    ```json
    {
        "data": {
            "user_id": "test-user",
    	"labels": ["label1", "label2"]
        },
        "message": "成功"
    }
    ```

* `POST` /users/{user\_id}/v1/labels

  * ユーザーの既存ラベルを、指定されたセットで置き換えます。
  * 部分的なラベルセットは許可されません。つまり、セット内のいずれかのラベルが無効である場合、または合計が5を超える場合、リクエスト全体が無効として扱われます
  * **パラメータ**
    * **パスパラメータ**
      * `user_id` ：ユーザーの一意の識別子。エンドポイントのパスパラメータとして渡されます。
    * **リクエスト本文**
      * **ラベル** ：ユーザーの新しいラベルの一覧

        **例**

        ```bash
        {
          "labels": ["label1", "label2"]
        }
        ```
  * **サンプル呼び出し**

    ```bash
    curl --request POST 'https://api.ggwp.com/users/test-user/v1/labels' \\
    --header 'x-api-key: api_key'
    --header 'Content-Type: application/json' \\
    --data-raw '{
            "labels": ["label1", "label2"]
    }'
    ```
  * **レスポンス 201**

    ```bash
    {
        "data": {
            "user_id": "test-user",
    	"labels": ["label1", "label2"]
        }
    }
    ```
  * **4XXレスポンス**

    <table><thead><tr><th width="247">ステータスコード</th><th>エラーメッセージ</th></tr></thead><tbody><tr><td><strong>400</strong></td><td><code>{"message": "無効なラベル。ラベルは英数字、ハイフン（-）、またはアンダースコア（_）のみを含む文字列でなければなりません。"}</code></td></tr><tr><td><strong>422</strong></td><td><code>{"message" :"ユーザーは最大5つのラベルを持つことができます。"}</code></td></tr></tbody></table>

* `PUT` /users/{user\_id}/v1/labels
  * 重複を除去しながら、指定されたユーザーにラベルを追加します。
  * 部分更新は許可されません。つまり、セット内のいずれかのラベルが無効である場合、または合計が5を超える場合、リクエスト全体が無効として扱われます。
  * **パラメータ**
    * **パスパラメータ**
      * `user_id` ：ユーザーの一意の識別子。
    * **リクエスト本文**

      * **ラベル：** ラベルの一覧

        **例**

      <pre class="language-json"><code class="lang-json"><strong>{
      </strong>    "labels": ["label3", "label4"]
      }
      </code></pre>
  * **サンプル呼び出し**

    ```bash
    curl --request PUT 'https://api.ggwp.com/users/test-user/v1/labels' \\
    --header 'x-api-key: api_key'
    --header 'Content-Type: application/json' \\
    --data-raw '{
            "labels": ["label3", "label4"]
    }'
    ```
  * **レスポンス 200**

    ```json
    {
        "data": {
            "user_id": "test-user",
    	"labels": ["label1", "label2", "label3", "label4"],
    	"added_labels": ["label3", "label4"]
        }
    }
    ```
  * &#x20;**4XXレスポンス**

    <table><thead><tr><th width="247">ステータスコード</th><th>エラーメッセージ</th></tr></thead><tbody><tr><td><strong>400</strong></td><td><code>{"message": "無効なラベル。ラベルは英数字、ハイフン（-）、またはアンダースコア（_）のみを含む文字列でなければなりません。"}</code></td></tr><tr><td><strong>422</strong></td><td><code>{"message" :"ユーザーは最大5つのラベルを持つことができます。"}</code></td></tr></tbody></table>

* `DELETE` /users/{user\_id}/v1/labels/{label}
  * 指定されたラベルがユーザーに付与されている場合、それを削除します
  * **パラメータ**
    * **パスパラメータ**
      * `user_id`：ユーザーの一意の識別子
      * `ラベル`：ラベル名
  * **サンプル呼び出し**

    ```bash
    curl --request DELETE 'https://api.ggwp.com/users/test-user/v1/labels/label4' \\
    --header 'x-api-key: api_key'
    ```
  * **レスポンス 200**

    ```json
    {
        "data": {
            "user_id": "test-user",
    	"labels": ["label1", "label2", "label3"] //削除後に残るラベル
        }
    }
    ```
  * &#x20;**4XXレスポンス**

    <table><thead><tr><th width="247">ステータスコード</th><th>エラーメッセージ</th></tr></thead><tbody><tr><td><strong>404</strong></td><td><code>{"message": "ユーザー test-user のラベルが見つかりません"}</code></td></tr></tbody></table>

* `DELETE` /users/{user\_id}/v1/labels
  * ユーザーに付与されているすべてのラベルを削除します
  * **パラメータ**
    * **パスパラメータ**
      * `user_id`：ユーザーの一意の識別子
  * **サンプル呼び出し**

    ```bash
    curl --request DELETE 'https://api.ggwp.com/users/test-user/v1/labels' \\
    --header 'x-api-key: api_key'
    ```
  * **レスポンス 200**

    ```json
    {
        "data": {
            "user_id": "test-user",
    	"labels": []
        }
    }
    ```

* **共通の4XXレスポンス**

  <table><thead><tr><th width="247">ステータスコード</th><th>エラーメッセージ</th></tr></thead><tbody><tr><td><strong>400</strong></td><td><code>{"message":"ラベル名は32文字を超えることはできません}</code></td></tr><tr><td><strong>403</strong></td><td><code>{"message": "無効なAPIキー、またはAPIキーがありません"}</code></td></tr><tr><td><strong>404</strong></td><td><code>{"message": "ユーザーが見つかりません"}</code></td></tr></tbody></table>

* **共通の5XXレスポンス**

  <table><thead><tr><th width="247">ステータスコード</th><th>エラーメッセージ</th></tr></thead><tbody><tr><td><strong>500</strong></td><td><code>内部サーバーエラー</code></td></tr><tr><td><strong>504</strong></td><td><code>ゲートウェイタイムアウト</code></td></tr></tbody></table>
