Logo

Tính năng:

Input object 'oneOf'

Input object 'oneOf'

Input object oneOf là một loại input object đặc biệt, trong đó chính xác một trong các trường đầu vào phải được cung cấp, nếu không máy chủ sẽ trả về lỗi xác thực. Hành vi này đưa tính đa hình vào các đầu vào trong GraphQL, cho phép chúng ta thiết kế các schema gọn gàng hơn.

Chẳng hạn, việc truy xuất một người dùng trong ứng dụng của chúng ta có thể được thực hiện bằng các thuộc tính khác nhau, chẳng hạn như ID người dùng hoặc email. Để làm điều này, thông thường chúng ta cần tạo một trường riêng cho mỗi thuộc tính:

type Query {
  userByID(id: ID!): User
  userByEmail(email: String!): User
}

Nhờ input object oneOf, thay vào đó chúng ta có thể có một trường duy nhất user chấp nhận tất cả các thuộc tính thông qua một input object oneOf UserByInput, biết rằng chỉ một trong các thuộc tính (ID hoặc email) có thể và phải được cung cấp:

type Query {
  user(by: UserByInput!): User
}
 
input UserByInput @oneOf {
  id: ID
  email: String
}

Trong query, chúng ta cung cấp giá trị đầu vào cho chính xác một trong các thuộc tính:

{
  tom: user(by: {
    id: 1
  }) {
    name
  }
 
  jerry: user(by: {
    email: "jerry@warnerbros.com"
  }) {
    name
  }
}

Đăng ký nhận bản tin của chúng tôi

Cập nhật tất cả những điều mới từ Gato GraphQL.