Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 什么是GraphQL模式命名的最佳实践?_Reactjs_Schema_Graphql_Idioms - Fatal编程技术网

Reactjs 什么是GraphQL模式命名的最佳实践?

Reactjs 什么是GraphQL模式命名的最佳实践?,reactjs,schema,graphql,idioms,Reactjs,Schema,Graphql,Idioms,我开始开发一个非常重要的应用程序,我们正在考虑GraphQL。在编写模式的初稿时,我在尝试建立命名约定时有些不知所措,这种约定将随着产品的成熟而扩展。我非常感谢那些必须发展模式、遇到或成功避免死胡同或不一致的人的一些见解: 在接口名称中保留“接口”的名称通常有用/惯用吗?例如,在大型应用程序中,Profile或ProfileInterface更可取吗 interface ProfileInterface { # fields here... } type UserProfile imple

我开始开发一个非常重要的应用程序,我们正在考虑GraphQL。在编写模式的初稿时,我在尝试建立命名约定时有些不知所措,这种约定将随着产品的成熟而扩展。我非常感谢那些必须发展模式、遇到或成功避免死胡同或不一致的人的一些见解:

  • 在接口名称中保留“接口”的名称通常有用/惯用吗?例如,在大型应用程序中,
    Profile
    ProfileInterface
    更可取吗

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

  • 最佳做法是将所有或无
    对象
    s声明为
    标量
    类型
    ,两者之间的界线在哪里?设想一个
    类型,它通常表示为一个数组
    [x,y]
    ;哪个更地道

    scalar Point
    
    type Point {
      x: Float
      y: Float
    }
    
  • 任何其他与GraphQL中的命名约定或类型声明相关的最佳实践,如果没有经验就很难知道
  • 提前谢谢


    这个问题还没有得到我想要的动力,所以我将开始发布一些有用的片段,这些片段可能会演变成各种各样的答案

    使用末尾的输入命名输入类型是一种有用的约定, 因为您通常需要一个输入类型和一个输出类型 对于单个概念对象而言,它们略有不同


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

    1.我不认为在每个接口的末尾附加接口是惯用的。最好使用描述性名称。考虑与接口相关的示例。它们不会将接口附加到任何类型

    2.枚举只有在存在多个相关值时才有优势。当只有一个可能的值时,我看不出包含type有多大帮助。枚举值也使用与枚举相关的所有大写和下划线命名

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

    日期、电子邮件和Url等值是标量类型的常见示例。它们提供语义价值,客户机将知道从这些字段中可以得到什么

    下面是与自定义标量相关的示例。 这是一个例子


    4。你会发现李·拜伦的文章很有帮助。

    我不久前发现了这篇文章。我认为没有明确的章节,但最佳实践w.r.t.命名约定在整个教程中传播。

    这些都很好,您的链接也很完美。谢谢。根据Graphql规范,可以在名称中使用
    ,但在所有示例中都使用了
    camelCase
    。这是否意味着命名约定没有固定的规则?枚举:应该在PascalCase中有它们的类型名,在所有的大写字母中有它们的值名,因为它们类似于常量。资料来源:
    scalar Point
    
    type Point {
      x: Float
      y: Float
    }