溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在GraphQL查詢中實現數據校驗和輸入驗證

發(fā)布時間:2024-05-11 14:29:12 來源:億速云 閱讀:59 作者:小樊 欄目:web開發(fā)

在GraphQL查詢中實現數據校驗和輸入驗證可以通過使用輸入類型(Input Type)和自定義指令(Custom Directive)來實現。以下是一些方法:

  1. 使用輸入類型(Input Type):定義一個輸入類型來封裝需要驗證的輸入數據,并在查詢字段中使用該輸入類型。在輸入類型中可以定義字段的數據類型和必填性,并在解析查詢時對輸入數據進行驗證。
input UserInput {
  name: String!
  age: Int!
}

type Mutation {
  createUser(input: UserInput): User
}
  1. 使用自定義指令(Custom Directive):定義一個自定義指令來對查詢字段進行輸入驗證,可以在需要驗證的查詢字段上應用該自定義指令。在自定義指令中可以定義驗證規(guī)則,并在執(zhí)行查詢時對輸入數據進行驗證。
directive @validateInput(rules: [ValidationRule!]!) on FIELD_DEFINITION

type Mutation {
  createUser(name: String! @validateInput(rules: [{rule: "isLength", min: 3}]), age: Int! @validateInput(rules: [{rule: "isInt"}])): User
}
  1. 在解析器函數中進行數據校驗:在解析器函數中可以對傳入的參數進行數據校驗,如果數據不符合要求,則拋出錯誤。
Mutation: {
  createUser: async (_, { input }) => {
    if(!input.name || input.name.length < 3) {
      throw new Error('Name must be at least 3 characters long');
    }
    if(!Number.isInteger(input.age)) {
      throw new Error('Age must be an integer');
    }
    // create user logic
  }
}

通過以上方法,可以在GraphQL查詢中實現數據校驗和輸入驗證,確保傳入的數據符合預期的格式和要求。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI