У меня есть конечная точка, где мой запрос работает, когда он:
query {
getItem(dictionaryType: "test1") {
code
name
description
}
}
Он работает нормально, см .:
Я хочу проверить переменную - поэтому я хочу изменить ее на что-то вроде:
query {
getItem($dictionaryType: String) {
code
name
description
}
}
variables {
dictionaryType: "test1"
}
Я не хочу использовать любой другой инструмент, кроме почтальона, или я бы предпочел не использовать другой формат, чем текст. При выполнении второго вывода я получаю следующую ошибку:
"errors": [
{
"message": "Invalid Syntax",
"locations": [
{
"line": 2,
"column": 9,
"sourceName": null
}
],
Как исправить синтаксис запроса?
Редактировать: У меня даже проблема с запросом с синтаксисом, как здесь: https://stackoverflow.com/a/50043390/4983983 query { getDataTypes }
Чтобы перевести его в json Например: {"query": "{getDataTypes}"}
Не работает и выдает ошибку синтаксического анализа JSON: Cannot deserialize instance of
java.lang.String out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of
java.lang.String out of START_OBJECT token\n at [Source: (PushbackInputStream
ошибка.
См .:
В настоящее время code
для Posts
конечных точек выглядит следующим образом:
@PostMapping("graphql")
public ResponseEntity<Object> getResource(@RequestBody String query) {
ExecutionResult result = graphQL.execute(query);
return new ResponseEntity<Object>(result, HttpStatus.OK);
}
Если я изменю его на:
@PostMapping("graphql")
public ResponseEntity<Object> getResource(@RequestBody Object query) { // String query
ExecutionResult result;
if (query instanceof String) {
result = graphQL.execute(query.toString());
} else{
Map b = (HashMap) query;
result = graphQL.execute(b.get("query").toString());
}
return new ResponseEntity<Object>(result, HttpStatus.OK);
}
Теперь, кажется, работает только json
версии,Потому что, когда я использую текст, я получаю:
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'text/plain;charset=UTF-8' not supported",
"path": "/graphql"
Есть ли другой вариант конфигурации в этом отношении?Я не знаю, будет ли variables
хорошо обработан в последнем примере.