Legitmark はタクソノミーデータのローカライズされた API レスポンスをサポートしています — カテゴリ、タイプ、サイド、サービス、ステージ、理由。Accept-Language ヘッダーを設定すると、翻訳可能なフィールドが英語ではなくリクエストされた言語で返されます。
ユーザーの希望言語でカテゴリ名、撮影手順、拒否理由を表示するのに役立ちます。
サポートされているロケール
| ロケールコード | 言語 | 例 Accept-Language |
|---|
en | 英語(デフォルト) | Accept-Language: en |
zh | 中国語(簡体字) | Accept-Language: zh |
ja | 日本語 | Accept-Language: ja |
ヘッダーが省略された場合、またはサポートされていないロケールが含まれている場合、API はデフォルトで英語を返します。
使用方法
翻訳可能なデータを返すリクエストに Accept-Language ヘッダーを追加します:
const response = await fetch('https://api.legitmark.com/api/v2/categories?active_only=true', {
headers: {
'Authorization': 'Bearer leo_xxxxxxxxx',
'Accept-Language': 'ja'
}
});
const { data } = await response.json();
// data[0].name → "バッグ"("Bags" の代わりに)
レスポンスには使用されたロケールを確認する Content-Language ヘッダーが含まれます:
翻訳可能なエンドポイント
以下のエンドポイントがローカライズされたレスポンスをサポートしています:
カテゴリ
| エンドポイント | 翻訳フィールド |
|---|
GET /api/v2/categories | name |
GET /api/v2/categories/:uuid | name |
GET /api/v2/categories/:uuid/types | name(タイプ) |
GET /api/v2/categories/tree | name(カテゴリとタイプ) |
タイプ
| エンドポイント | 翻訳フィールド |
|---|
GET /api/v2/types | name |
GET /api/v2/types/:uuid | name |
サイド(撮影要件)
| エンドポイント | 翻訳フィールド |
|---|
GET /api/v2/sides | name、description |
GET /api/v2/sides/:uuid | name、description |
GET /api/v2/sr/:uuid/side-groups | name、description(ネストされたサイド) |
サイドの翻訳は、ユーザーに撮影手順を表示するのに特に役立ちます。例えば、「正面」とその説明「アイテムの正面の鮮明な写真を撮影してください」をユーザーの言語で表示できます。
理由(拒否理由)
| エンドポイント | 翻訳フィールド |
|---|
GET /api/v2/reasons | name、description |
GET /api/v2/reasons/:uuid | name、description |
GET /api/v2/reasons/grouped | name、description |
サービス
| エンドポイント | 翻訳フィールド |
|---|
GET /api/services/:uuid | name、description |
ステージ
| エンドポイント | 翻訳フィールド |
|---|
| ステージエンドポイント | title、description |
サービスリクエスト(V2)
| エンドポイント | 翻訳フィールド |
|---|
GET /api/v2/sr/:uuid | 埋め込まれたカテゴリ、タイプ、サイド、理由が翻訳されます |
例:ローカライズされたタクソノミーフロー
ユーザーの言語でタクソノミー選択を提示する典型的な統合:
const userLocale = 'ja'; // ユーザー設定から
const headers = {
'Authorization': 'Bearer leo_xxxxxxxxx',
'Accept-Language': userLocale
};
// ステップ 1:日本語でカテゴリを取得
const categoriesRes = await fetch(
'https://api.legitmark.com/api/v2/categories?active_only=true',
{ headers }
);
const { data: categories } = await categoriesRes.json();
// → [{name: "バッグ", uuid: "..."}, {name: "時計", uuid: "..."}, ...]
// ステップ 2:選択したカテゴリのタイプを取得(日本語)
const typesRes = await fetch(
`https://api.legitmark.com/api/v2/categories/${selectedCategoryUuid}/types`,
{ headers }
);
const { data: types } = await typesRes.json();
// → [{name: "トートバッグ", uuid: "..."}, ...]
// ステップ 3:SR 作成後、ローカライズされた説明付きのサイドグループを取得
const sidesRes = await fetch(
`https://api.legitmark.com/api/v2/sr/${srUuid}/side-groups`,
{ headers }
);
const { data: sideGroups } = await sidesRes.json();
// サイドには撮影ガイダンス用の翻訳された名前と説明があります
フォールバック動作
- 特定のフィールドの翻訳が利用できない場合、英語の値が返されます
- ロケールヘッダーの形式が不正またはサポート外の場合、英語が使用されます
- ブランドとモデルは翻訳されません — グローバルにオリジナル名を使用します
次のステップ
- 確認 タクソノミー 分類システムを理解する
- 実装 ワークフロー サービスリクエストの完全なライフサイクル
- 設定 Webhooks リアルタイムのステータス更新