如何使用 SPQR 获取生成的方案文件 .graphqls?
Posted
技术标签:
【中文标题】如何使用 SPQR 获取生成的方案文件 .graphqls?【英文标题】:How to get the generated scheme file .graphqls using SPQR? 【发布时间】:2019-02-04 18:41:25 【问题描述】:我真的很喜欢 SPQR 让 graphql 与现有系统轻松集成的方式,我唯一想看到的是 .graphqls
文件,这样我就可以了解更多关于 GraphQL 语法的信息。
有没有办法从集成了 SPQR 注释的现有代码生成方案文件?
为了提供一些代码,让我们使用来自GitHub site的相同代码
实体:
public class User
private String name;
private Integer id;
private Date registrationDate;
@GraphQLQuery(name = "name", description = "A person's name")
public String getName()
return name;
@GraphQLQuery
public Integer getId()
return id;
@GraphQLQuery(name = "regDate", description = "Date of registration")
public Date getRegistrationDate()
return registrationDate;
服务类:
class UserService
@GraphQLQuery(name = "user")
public User getById(@GraphQLArgument(name = "id") Integer id)
...
预期输出:
type User
id: Int!
name: String!
registrationDate: String
Query
user(Int):User
【问题讨论】:
【参考方案1】:这并不是真正的 SPQR 特定的。所有需要的类都由 graphql-java 自己提供:
new SchemaPrinter().print(schema);
要获得更详细的输出(带有标量、自省类型等),请向打印机提供选项:
new SchemaPrinter(
// Tweak the options accordingly
SchemaPrinter.Options.defaultOptions()
.includeScalarTypes(true)
.includeExtendedScalarTypes(true)
.includeIntrospectionTypes(true)
.includeSchemaDefintion(true)
).print(schema);
【讨论】:
我正在使用 spqr-spring-boot-starter 库。您能帮我在上面的代码 sn-p 中获取schema
的实例吗?
@Anita 你应该可以简单地注入它。【参考方案2】:
在应用程序属性中添加graphql.spqr.gui.enabled=true
启用gui(playground)
。可以从 GUI 浏览和下载架构和文档。
【讨论】:
以上是关于如何使用 SPQR 获取生成的方案文件 .graphqls?的主要内容,如果未能解决你的问题,请参考以下文章
使用 graphql-spqr、java 和 mongo 进行中继分页
无法摆脱 graphql-spqr-spring-boot-starter 中的“获取数据时异常(/apiName)”
我们如何从 GraphQL 的 RequestContextHolder 获取 GraphQL 的 HttpServletRequest(DefaultGlobalContext)(使用 graphq