我无法使用postman查询用scala编写的使用sangria库编写的graphql服务器。如果我使用内容类型作为"application-json“,如果我使用纯文本,则不支持内容类型,我会在postman中得到一个请求格式错误。我使用的邮递员版本是6.2.4版本。代码非常简单,我从hbase读取数据。我使用sangria宏函数deriveObjectTypeUnit,myCaseClass来定义对象。但是,我可以通过将graphiql.html文件从资源连接到创建的路由来使用graphiql控制台。graphiql控制台的问题是,它将所有参数和字段标记为非空(在默认情况下不应该是非空的),所有字段在graphql中都是可空的。我在graphiql控制台的documentation选项卡中检查了这个选项,在这里我可以看到我的所有字段,参数被标记为非空(后缀为感叹号!)。示例查询如下:
{
hBaseTable(date: "2019-11-21", key: "10100003071234") {
RowKey
DateOfInt
}
}我的问题是如何在sangria中设置默认的空值,以及graphql如何支持postman 6,而不支持scala实现。
发布于 2020-05-08 18:22:09
默认情况下,字段在GraphQL模式中可能为空,但在Scala中,null几乎总是编程错误(当然,如果您将它们作为参数传递或返回)--您希望使用Option显式地对它们进行建模。如果您想坚持GraphQL约定,只需将案例类中的所有字段写成Optional即可。
https://stackoverflow.com/questions/61683745
复制相似问题