Я использую spring-boot-starter-graphql . Я общаюсь с конечной точкой GraphQL, проживающей на другом сервере. В дополнение к заголовку токена носителя, я также создаю еще один вид токенового заголовка с конечной точкой GraphQL, который внутри, называемый токеном POP. Этот зашифрованный токен используется для проверки того, что тело запроса не было изменено. Этот токен генерируется из метода HTTP, токена носителя и корпуса запроса. Из этого вызова: < /p>
String documentStr = "{\nphoneContactability0: phoneContactability(ruleId:\"2\", phoneNumber:\"1234567892\"){\nphone{\nphoneNumber\nruleValue\n}\n}}";
Object response = httpGraphQlClient.mutate()
.url(url)
.headers(headers -> {
headers.addAll(httpEntity.getHeaders());
})
.build()
.document(documentStr)
.retrieve("phoneContactability0")
.toEntity(Object.class)
.block();
< /code>
Я запускаю код из Eclipse on localhost: 8080. К сожалению, если я передаю приведенную ниже строку (и другие подобные варианты, которые я пробовал), методу, который генерирует токен POP, сгенерированный токен будет неверным. Я думаю, что это посылает что -то вроде: < /p>
{"variables":null,"query":"{\nphoneContactability0: phoneContactability(ruleId:\"2\", phoneNumber:\"1234567892\"){\nphone{\nphoneNumber\nruleValue\n}\n}}"}
< /code>
Но мне нужно точно знать, какой корпус JSON формируется по запросу, чтобы конечная точка могла проверить тело запроса. Я получаю graphqltransportexception с вложенным webClientResponseException , но ни один из этих объектов не говорит мне, каково это тело запроса.
Подробнее здесь: https://stackoverflow.com/questions/727 ... quest-body