GraphQL 是一种用于 API 的查询语言和运行时的环境,它提供了一种让前端开发者能够高效地查询、修改和订阅多个 data API 的方法。在使用 GraphQL 的过程中,错误码的设计和规范非常重要,有助于开发者更好地理解和处理错误。
在 GraphQL 中,一般使用一个字符串表示错误码,这个字符串可以包含多个用 .
分隔的部分,每个部分都表示一个更具体的错误子码。例如:
LOADING.ERROR.TIME_OUT
这个错误码表示在加载数据时发生了超时错误。下面我们来深入探讨 GraphQL 的错误码规范和调用方式。
GraphQL 的错误码设计原则
在设计 GraphQL 的错误码时,有一些原则能够帮助开发者更好地理解和处理错误:
错误码要具有一致性。 GraphQL 的错误码应该尽可能地符合通用的规范,保证它们易于识别和使用。这样,即使是新手开发者也能够快速理解错误,进行排查处理。
错误码要包含适当的上下文信息。 GraphQL 的错误码应该能够让开发者通过错误码快速理解错误的发生原因。这个过程中,上下文信息的提供非常重要,包括错误位置、请求参数等等。
错误码要承载错误处理的指导意义。 GraphQL 的错误码应该能够告诉开发者如何排查和处理错误。这个过程中,错误码中包含的信息应该足够详细,帮助开发者更好地理解并处理错误。
错误码要足够灵活。 GraphQL 的错误码应该能够适应不同类型的错误,包括网络错误、RPC 错误、资源错误等等。同时,错误码也应该能够自定义,以便让开发者根据具体需要进行定义和调整。
GraphQL 的错误码的调用方式
在 GraphQL 中,错误码的调用方式可以分为两类:
- Errors 数组。这是 GraphQL 的默认错误处理方式,当出现错误时,GraphQL 会将错误信息打包成一个
GraphQL Error
对象,从而形成一个GraphQL Error
的数组。开发者可以通过捕捉这个数组,进行错误处理。
例如:
-- -------------------- ---- ------- ----- --- - ----- ---------------------------------------- - ------- ------- -------- - --------------- ------------------ -- ----- ---------------- ------ --------- ---- --- -- ----- - ------ - - ----- ---------- -- -------- - -- ------ -展开代码
- Status Code。这是一种更加直接的错误码调用方式,它可以让开发者更容易地识别和处理错误。在这种模式下,GraphQL 会识别错误类型,然后将错误类型转换为具体的 HTTP 状态码,从而返回给客户端。
例如:
-- -------------------- ---- ------- ----- --- - ----- ----------------- - ------- ------- -------- - --------------- ------------------ -- ----- ---------------- ------ --------- ---- --- -- -- ----------- --- ---- - -- -- --- -- -展开代码
示例代码
下面是一个完整的示例代码,演示了在 GraphQL 中使用错误码的规范和调用方式:
-- -------------------- ---- ------- ----- - ------------- --- - - ------------------------ ----- -------- - ---- ---- ----- - ------ ------- - ---- -------- - ----------------- ------------------ ----- - ----- --------------- - ----- ------- ------ ------- --------- ------- - ---- ---- - --- --- ----- ------- ------ ------- - - ----- ----- - -- ----- --------- - - ------ - ------ -- -- ------ -------- -- --------- - ----------- --- - ----- -- -- - ----- - ----- ------ -------- - - ----- -- ------- - ----- --- --------------------------------- - -- -------- - ----- --- ---------------------------------- - -- ----------- - ----- --- ------------------------------------- - ----- ---- - - --- ------------ - -- ----- ------ - ---------------- ------ ---- -- -- - ----- ------ - --- -------------- --------- ---------- ------------ ----- -- -- -------- -------------- ----- ---------------------- --- ----------- -- ------- -- -- -- ----- ------------- --- -- ----------------------- --- -- -- - --------------- ------ ----- -- -------- --展开代码
上面的代码演示了如何在 GraphQL 中使用错误码。在这个例子中,我们定义了 user
相关的错误码,同时在 createUser
函数中进行了错误处理。最后,在 formatError
中定义了返回给客户端的错误码格式,其中 extensions.code
表示了错误码。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67c8d30de46428fe9ef9d0b7