@RestController
@RequestMapping("/api/dictionary/")
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class DictionaryController {
@Value("classpath:items.graphqls")
private Resource schemaResource;
private GraphQL graphQL;
private final DictionaryService dictionaryService;
@PostConstruct
public void loadSchema() throws IOException {
File schemaFile = schemaResource.getFile();
TypeDefinitionRegistry registry = new SchemaParser().parse(schemaFile);
RuntimeWiring wiring = buildWiring();
GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(registry, wiring);
graphQL = GraphQL.newGraphQL(schema).build();
}
private RuntimeWiring buildWiring() {
DataFetcher<String> fetcher9 = dataFetchingEnvironment ->
getByInput((dataFetchingEnvironment.getArgument("example")));
return RuntimeWiring.newRuntimeWiring()
.type("Query", typeWriting ->
typeWriting
.dataFetcher("getByInput", fetcher9)
)
.build();
}
public String getByInput(Character character) {
return "testCharacter";
}
}
type Query {
getByInput(example: Character): String
}
input Character {
name: String
}
query {
getByInput (example: {name: "aa"} )
}
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Character {
protected String name;
}
"Exception while fetching data (/getByInput) : java.util.LinkedHashMap cannot be cast to pl.graphql.Character",
如果我更改为:
public String getByInput(Object character)
代码运行良好-但我想转换工作。
对于类型为input
类型的输入参数,graphql-java
将把它转换为map
。
在您的示例中,查询是GetByInput(example:{name:“aa”})
,example
参数是Input
类型。所以,
dataFetchingEnvironment.get("example");
将返回一个结构为(key=“name”,value=“aa”)的映射。然后尝试将映射转换为character
,这肯定会给您一个错误,因为它们是完全不同的类型。
我正在学习Apollo和graphQL,并将其集成到我的一个项目中。到目前为止一切正常,但现在我正在尝试一些突变,我正在努力处理输入类型和查询类型。我觉得事情比实际情况要复杂得多,因此我正在寻求如何处理我的情况的建议。我在网上找到的示例都是非常基本的模式,但现实总是更加复杂,因为我的模式非常大,如下所示(我只复制一部分): 然后定义输入和负载,依此类推... 为此,我需要一个变异来保存“计算”,因
我正在使用Apollo Angular并托管一个GraphQL驱动的服务器。我试图实现的请求很简单。我需要传递一个对象作为我请求的查询参数。这是我的请求: 查询定义为: 服务器上的我的架构定义为: 当我的解析器功能 我想知道是否允许输入作为查询中的参数,如果不允许,我应该使用什么样的模式或实践。 如果可能,我不希望我的在代码中显式地包含每个参数。 非常感谢。 编辑:已解决,解析程序函数中的行为,从
我是GraphQL新手,在编写了一些代码之后,我遇到了一个问题,即为一个突变声明一个输入类型。以下是我的模式: 当我运行我的应用程序时,我得到了错误信息 原因:graphql。kickstart。工具。SchemaError:预期类型“IdInput”是GraphQLInputType,但事实并非如此!类型是否只允许对象类型被错误地用作输入类型,反之亦然?在graphql。kickstart。工具
我有一个双数组,其中我需要使用jtextfield输入搜索第一行,以获得索引(I的位置),然后使用该索引号来标识第二行的位置,并使用第二个数组行中的变量。我用它来得到数组第二行的毛利率乘数,它基于第一行数组中的百分比利润的位置。 感谢您的帮助。我已经搜索了其他数组链接,但它们处理的是位置而不是位置的内容。 public void getMarginArray(){
搜索输入框是一个新兴的html元素,外观为圆角,当你输入文字后右边会出现一个叉的图标,点击则会清除你输入的内容。给input增加type="search" 属性来定义 注意要把label的for属性设为input的id值,使他们能够在语义上相关联,并且要用div容器包裹它们,并给他设定data-role="fieldcontain"属性 HTML 代码: <div data-role="field