Date 如何将RESTAPI中Java类的当前日期传递给GraphQLAPI
我正在尝试从Springboot类调用GraphQLAPI。 它会抛出一个错误,如下所示,我知道这个问题是由于我发送到GraphQLAPI的日期造成的Date 如何将RESTAPI中Java类的当前日期传递给GraphQLAPI,date,parameter-passing,graphql-java,Date,Parameter Passing,Graphql Java,我正在尝试从Springboot类调用GraphQLAPI。 它会抛出一个错误,如下所示,我知道这个问题是由于我发送到GraphQLAPI的日期造成的 如果我从postman调用相同的graphQL,它工作正常,数据也插入到数据库中。 邮递员正文中给出的输入如下所示 mutation{ createAggrgtrApplctnByOrgid(orgid: "orgid",applctnnm: "applctnnm",dispnm: "
如果我从postman调用相同的graphQL,它工作正常,数据也插入到数据库中。
邮递员正文中给出的输入如下所示
mutation{
createAggrgtrApplctnByOrgid(orgid: "orgid",applctnnm: "applctnnm",dispnm: "dispnm",applfortxt: "applfortxt",crtdbytxt: "crtdbytxt",updtdbytxt: "updtdbytxt",applctnid: "applctnid",loadts: "loadts",crtdts: "crtdts",updtdts: "updtdts",extrnlapplctnid: "extrnlapplctnid",isdeletedflg: isdeletedflg)
}
String gqlTemplate = resourceReader.asString(createAppGql);;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT);
LocalDateTime dateTime = LocalDateTime.now();
String formattedDateTime = dateTime.format(formatter);
return txt.replace("orgid", applicationData.getOrganizationId())
.replace("applctnnm", applicationData.getApplicationName())
.replace("dispnm", applicationData.getApplicationDisplayName())
.replace("applfortxt", "")
.replace("crtdbytxt",applicationData.getRole())
.replace("updtdbytxt", applicationData.getRole())
.replace("loadts", "2020-06-28T16:48:37.000+0000")
.replace("crtdts", "2020-06-28T16:48:37.000+0000")
.replace("updtdts", "2020-06-28T16:48:37.000+0000")
.replace("extrnlapplctnid", applicationData.getExternalApplicationId())
.replace("isdeletedflg", "false" );
HttpEntity<String> entity = new HttpEntity<>(queryTemplate, headers);
ResponseEntity<AppDataResponse> response = restTemplate.exchange(appURL, HttpMethod.POST, entity,
AppDataResponse.class);
突变{createNewApplication(orgid:“test”,applctnnm:“mynewappl”,dispnm:“test”,applforText:“test”,crtdbytxt:“test”,updtdbytxt:“test”,applid:“test”,loadts:“2020-06-28T16:48:37.000+0000”,updtdtts:“2020-06-28T16:48:37.000+0000”,extrnlappctnid:“test”,isdeletdflg:true)
springbootapi中的graphql文件如下所示
mutation{
createAggrgtrApplctnByOrgid(orgid: "orgid",applctnnm: "applctnnm",dispnm: "dispnm",applfortxt: "applfortxt",crtdbytxt: "crtdbytxt",updtdbytxt: "updtdbytxt",applctnid: "applctnid",loadts: "loadts",crtdts: "crtdts",updtdts: "updtdts",extrnlapplctnid: "extrnlapplctnid",isdeletedflg: isdeletedflg)
}
String gqlTemplate = resourceReader.asString(createAppGql);;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT);
LocalDateTime dateTime = LocalDateTime.now();
String formattedDateTime = dateTime.format(formatter);
return txt.replace("orgid", applicationData.getOrganizationId())
.replace("applctnnm", applicationData.getApplicationName())
.replace("dispnm", applicationData.getApplicationDisplayName())
.replace("applfortxt", "")
.replace("crtdbytxt",applicationData.getRole())
.replace("updtdbytxt", applicationData.getRole())
.replace("loadts", "2020-06-28T16:48:37.000+0000")
.replace("crtdts", "2020-06-28T16:48:37.000+0000")
.replace("updtdts", "2020-06-28T16:48:37.000+0000")
.replace("extrnlapplctnid", applicationData.getExternalApplicationId())
.replace("isdeletedflg", "false" );
HttpEntity<String> entity = new HttpEntity<>(queryTemplate, headers);
ResponseEntity<AppDataResponse> response = restTemplate.exchange(appURL, HttpMethod.POST, entity,
AppDataResponse.class);
我的Java文件中的代码如下所示
mutation{
createAggrgtrApplctnByOrgid(orgid: "orgid",applctnnm: "applctnnm",dispnm: "dispnm",applfortxt: "applfortxt",crtdbytxt: "crtdbytxt",updtdbytxt: "updtdbytxt",applctnid: "applctnid",loadts: "loadts",crtdts: "crtdts",updtdts: "updtdts",extrnlapplctnid: "extrnlapplctnid",isdeletedflg: isdeletedflg)
}
String gqlTemplate = resourceReader.asString(createAppGql);;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(Constants.DATE_TIME_FORMAT);
LocalDateTime dateTime = LocalDateTime.now();
String formattedDateTime = dateTime.format(formatter);
return txt.replace("orgid", applicationData.getOrganizationId())
.replace("applctnnm", applicationData.getApplicationName())
.replace("dispnm", applicationData.getApplicationDisplayName())
.replace("applfortxt", "")
.replace("crtdbytxt",applicationData.getRole())
.replace("updtdbytxt", applicationData.getRole())
.replace("loadts", "2020-06-28T16:48:37.000+0000")
.replace("crtdts", "2020-06-28T16:48:37.000+0000")
.replace("updtdts", "2020-06-28T16:48:37.000+0000")
.replace("extrnlapplctnid", applicationData.getExternalApplicationId())
.replace("isdeletedflg", "false" );
HttpEntity<String> entity = new HttpEntity<>(queryTemplate, headers);
ResponseEntity<AppDataResponse> response = restTemplate.exchange(appURL, HttpMethod.POST, entity,
AppDataResponse.class);
String gqlTemplate=resourceReader.asString(createAppGql);;
DateTimeFormatter formatter=DateTimeFormatter.of模式(常数.DATE\u TIME\u格式);
LocalDateTime dateTime=LocalDateTime.now();
字符串formattedDateTime=dateTime.format(格式化程序);
返回txt.replace(“orgid”,applicationData.getOrganizationId())
.replace(“applctnnm”,applicationData.getApplicationName())
.replace(“dispnm”,applicationData.getApplicationDisplayName())
.replace(“applforText”,即“”)
.replace(“crtdbytxt”,applicationData.getRole())
.replace(“updtdbytxt”,applicationData.getRole())
.替换(“荷载”,“2020-06-28T16:48:37.000+0000”)
.替换(“crtdts”,“2020-06-28T16:48:37.000+0000”)
.替换(“UPDTS”,“2020-06-28T16:48:37.000+0000”)
.replace(“extrnlappctnid”,applicationData.getExternalApplicationId())
.替换(“isdeletedflg”、“false”);
HttpEntity=新的HttpEntity(queryTemplate,Header);
ResponseEntity response=restTemplate.exchange(appURL、HttpMethod.POST、entity、,
AppDataResponse.class);
请某人帮助我解决这个问题。如何将日期从java类传递到GraphQLAPI
谢谢!
Ram您的txt.replace()
没有替换txt字符串的正确部分
您的graphql文本是:
mutation{
createAggrgtrApplctnByOrgid(
orgid: "orgid",
applctnnm: "applctnnm",
dispnm: "dispnm",
applfortxt: "applfortxt",
crtdbytxt: "crtdbytxt",
updtdbytxt: "updtdbytxt",
applctnid: "applctnid",
loadts: "loadts",
crtdts: "crtdts",
updtdts: "updtdts",
extrnlapplctnid: "extrnlapplctnid",
isdeletedflg: isdeletedflg)
}
执行txt.replace(“UPDTS”,“2020-06-28T16:48:37.000+0000”)
时,您将在2020-06-28T16:48:37.000+0000之前替换所有出现的UPDTS
你的变异变成:
mutation{
createAggrgtrApplctnByOrgid(
orgid: "orgid",
applctnnm: "applctnnm",
dispnm: "dispnm",
applfortxt: "applfortxt",
crtdbytxt: "crtdbytxt",
updtdbytxt: "updtdbytxt",
applctnid: "applctnid",
loadts: "loadts",
crtdts: "crtdts",
2020-06-28T16:48:37.000+0000: "2020-06-28T16:48:37.000+0000",
extrnlapplctnid: "extrnlapplctnid",
isdeletedflg: isdeletedflg)
}
这是无效的,因为2020-06-28T16:48:37.000+0000不是有效的字段名!您需要避免替换字段名,而只替换值
我还建议使用适当的graphql客户端库,例如,而不是手动更新查询。我应该承认,我太愚蠢了,没有注意到键和值都有相同的字符集。感谢AllirionX的快速思考,尽管我之前和另一位朋友注意到了这一点。投了赞成票!:-)@AllirionX这里是我类似的错误:我如何修复它?