gpt4 book ai didi

突变中的 GraphQL 描述性成功消息

转载 作者:行者123 更新时间:2023-12-03 23:17:48 25 4
gpt4 key购买 nike

目前在 GraphQL JS 实现中,没有从突变返回描述性成功消息的标准方法,例如“用户创建成功”等。我的问题有两个部分:

  • 我的想法是从 API 返回成功消息是有益的。这样,不同客户端(例如 Web 和移动设备)之间的消息可以是统一的。客户端不必为每个 API 调用实现他们的自定义消息。但我不确定最佳做法是什么。从突变调用返回描述性成功消息是否有任何缺点(除了增加响应大小)?
  • 如果我决定这样做,graphql-js 中是否有标准方法可以做到这一点?

  • 例如,是否有可能返回如下内容:
    {
    data: {
    mutationName: {var1:"val1"}
    },
    messages: {
    mutationName:"User created successfully"
    }
    }

    最佳答案

    不这样做的原因

    现在有大量的客户端代码取决于返回结果的形状。如果您要以相当大的努力为代价实现您的想法,您将需要 fork 这些,以便从您的更改中受益。

    坚持今天的语言规范的理由

    同时,您想要实现的是(如果我理解正确的话)在当前规范中完全可以实现。

    有效解决所述问题

    为什么不这样做(我们将使突变成为用户创建):

    schema {
    mutation: Mutation
    query: Query
    }

    type Mutation {
    newUser(params: NewUserInput): NewUserResult
    }

    input NewUserInput {
    # ...
    }

    type NewUserResult {
    successMessage(languageCode: LanguageCode): String
    newUser: User
    }

    # need to define Query, NewUserInput, User

    如果您的系统需要,这允许您返回成功消息,而无需更改 GraphQL 语言的规范。

    如果你真的必须...

    (来源: graphql errors and status messages in graphql-js)

    至少在 express-graphql ,有办法传入 extensions给它: https://github.com/graphql/express-graphql/blob/master/src/index.js#L89

    关于突变中的 GraphQL 描述性成功消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46459474/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com