gpt4 book ai didi

reactjs - GraphQL 模式命名最佳实践有哪些?

转载 作者:行者123 更新时间:2023-12-03 12:59:52 26 4
gpt4 key购买 nike

我正在开始开发一个重要的应用程序,我们正在考虑使用 GraphQL。在处理我们的架构的初始草案时,我在尝试建立随着产品成熟而扩展的命名约定时变得有点瘫痪。我真的很感激任何必须发展模式并遇到或成功避免死胡同或不一致的人的见解:

  1. 在接口(interface)名称中保留“Interface”这个名称通常有用/惯用吗?例如,在大型应用中,ProfileProfileInterface 会更好吗?

    interface ProfileInterface {
    # fields here...
    }

    type UserProfile implements ProfileInterface {
    # implemented fields here...
    }
  2. 将单个枚举值指定为“常量”是否很常见?

    enum GeoJSONFeatureTypeConstant {
    feature
    }

    interface GeoJSONFeatureInterface {
    id: ID
    type: GeoJSONFeatureTypeConstant!
    geometry: GeoJSONGeometryInterface!
    properties: GeoJSONProperties
    }
  3. 最好的做法是将全有或全无的对象声明为标量还是类型,以及该行在哪里画在两者之间?想象一下 Point 类型通常表示为数组 [x,y];哪个更惯用?

    scalar Point

    type Point {
    x: Float
    y: Float
    }
  4. 与 GraphQL 中的命名约定或类型声明特别相关的任何其他最佳实践,如果没有经验就很难了解。

提前致谢!

<小时/>

这个问题还没有获得我想要的动力,所以我将开始发布我发现的有用的片段,这可能会演变成某种答案。

Naming input types with Input on the end is a useful convention, because you will often want both an input type and an output type that are slightly different for a single conceptual object.

http://graphql.org/graphql-js/mutations-and-input-types/

最佳答案

我思考了同样的问题,希望这对你有帮助。

1. 我不认为在每个界面末尾附加 Interface 是惯用的。最好有一个描述性的名称。考虑 GraphQL Specification 中提供的示例与接口(interface)相关。他们不会将 Interface 附加到任何类型。

2. 枚举仅在存在多个相关值时才有优势。当只有一个可能的值时,我不明白包含类型有什么帮助。枚举值也按照GraphQL Specification全部大写和下划线命名。与枚举相关。

3. 如果您决定实现标量类型,则由您来验证该字段。在这种特定情况下,提供 Point 作为类型最有意义,因为 Point 可以是 2-D 或 3-D。将其定义为类型更具声明性。

日期、电子邮件和网址等值是标量类型的常见示例。它们提供语义值(value),客户将知道对这些字段的期望。

这是相关的 section对于自定义标量。这是 example .

4.您会发现this李·拜伦 (Lee Byron) 的文章很有帮助。

关于reactjs - GraphQL 模式命名最佳实践有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40923977/

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