2016-11-30 65 views
2

我想驗證突變期間用戶提供的輸入,然後在提供一些無效字段時提供錯誤。從GrapQL-Java返回錯誤

有,回答我想問關於使用GraphQL Java實現了這個問題的GraphQL-JS here

問題的問題。

假設你有一個將數據發佈到API服務器的表單。 API服務器驗證輸入並返回JSON對象。如果輸入無效,則返回如下所示的錯誤對象。

{errors: {field1: "is required"}}

我們如何處理和使用GraphQL時爲這些樣的錯誤?應該如何以及在哪裏實施數據驗證(應該是GraphQL的一部分,還是應該在每個解析函數中)?

回答

2

graphql-java實現有一個類來檢查查詢是否無效(即graphql.validation.Validatior)。這樣你可以在執行它們之前驗證你的查詢字符串。

如果查詢無效,您可以創建一個方法,將List<ValidationError>作爲生成錯誤響應的參數。

例子:

List<ValidationError> errors = validator.validateDocument(graphQLSchema, requestString); 
if (!errors.isEmpty()) { return executeError(errors); } 
+1

剛一說明。任何有效的GraphQL實現(包含graphql-java)將自行驗證每個查詢,並且無效查詢永遠不會觸發執行。問題只在於如何自定義錯誤處理行爲。 – kaqqao