スキーマ拡張
スキーマ拡張'Enum String'型

'Enum String'型

特定の情報は、あらかじめ定義されたセットの値しか持てない場合があり、本来であればEnum型を使ってモデル化するのが理想的です。しかし、enum型には値に"-"文字を含めることができないという制限があり、これを避けられない場面もあります。

例えば、サイトに登録されていてクエリが許可されているすべてのカスタム投稿タイプを列挙するCustomPostEnumというenum型があると便利です。しかし、カスタム投稿タイプの名前には"-"文字が含まれる場合があり、以下の"some-custom-cpt"の例がそれにあたります:

{
  customPosts(
    filter: {
      customPostTypes: ["post", "product", "some-custom-cpt"]
    }
  ) {
    # ...
  }
}

この制限のため、この型はenum型にすることができません。代わりに、Gato GraphQLではカスタムの「Enum String」型として実装しています。これはEnumと同様に、あらかじめ定義されたセットの値のみを受け取ることができるString型です。

GraphQLスキーマに実装されているEnumString型の例を以下に示します:

  • CustomPostEnumString
  • TagTaxonomyEnumString
  • CategoryTaxonomyEnumString
  • MenuLocationEnumString

イントロスペクション:「Enum String」型の使用可能な値を照会する

イントロスペクションを使って、各EnumString型で受け付けられる値のリストを取得できます:

query EnumStringTypePossibleValues {
  __schema {
    types {
      name
      extensions {
        # This will print the enum-like "possible values" for EnumString type resolvers, or `null` otherwise
        possibleValues
      }
    }
  }
}