簡體   English   中英

Graphql 輸入強制屬性

[英]Graphql input mandatory property

是否有可能創建一個帶有強制輸入或其他輸入的 GraphQL 輸入。

例如:

input ClientInput
{
    name: String!
    token: String!
    email: String!
}

我希望屬性tokenemail是強制性的。 如果提供其中之一,則另一個成為可選。

可能嗎? 如果沒有,是否有一種“解決方法”?

不,這是不可能的。 一種解決方法是將這兩個字段設置為 aptional,然后進行手動驗證,在此您可以返回自定義錯誤。 另一種方法是將字段組合成類似

input ClientInput
{
    name: String!
    tokenOrEmail: String!
}

通過這樣做,您可以將該字段設為必填,然后進行一些解析以確定提供的值是令牌還是 email 更好的方法是添加另一個字段來提供 authMethod,如下所示:

input ClientInput
{
    name: String!
    authData: String!
    authMethod: AuthMethod!
}
enum AuthMethod {
  EMAIL
  TOKEN
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM