Các kiểu 'Enum String'
Một số thông tin chỉ có thể nhận giá trị từ một tập hợp được định nghĩa trước, và lý tưởng nhất là nên được mô hình hóa bằng kiểu Enum. Tuy nhiên, các kiểu enum có giới hạn là giá trị của chúng không thể chứa ký tự "-", và có những trường hợp điều này không thể tránh khỏi.
Chẳng hạn, sẽ hợp lý khi có kiểu enum CustomPostEnum, liệt kê tất cả các custom post type có thể được truy vấn (tức là những loại đã được đăng ký trên site và được phép truy vấn). Tuy nhiên, các custom post type có thể chứa ký tự "-" trong tên của chúng, như trong ví dụ "some-custom-cpt" dưới đây:
{
customPosts(
filter: {
customPostTypes: ["post", "product", "some-custom-cpt"]
}
) {
# ...
}
}Do giới hạn này, kiểu đó không thể là kiểu enum. Thay vào đó, Gato GraphQL triển khai nó như một kiểu tùy chỉnh "Enum String", là kiểu String chỉ có thể nhận giá trị từ một tập hợp được định nghĩa trước, tương tự như Enum.
Các ví dụ về kiểu EnumString được triển khai trong GraphQL schema bao gồm:
CustomPostEnumStringTagTaxonomyEnumStringCategoryTaxonomyEnumStringMenuLocationEnumString
Nội quan: Truy vấn các giá trị có thể có cho các kiểu "Enum String"
Chúng ta có thể lấy danh sách các giá trị được chấp nhận cho mỗi kiểu EnumString thông qua nội quan:
query EnumStringTypePossibleValues {
__schema {
types {
name
extensions {
# This will print the enum-like "possible values" for EnumString type resolvers, or `null` otherwise
possibleValues
}
}
}
}