GraphQLError: синтаксическая ошибка: ожидается $, найдено [ - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь запросить сервер graphql, который находится здесь

http://sapienscube.pythonanywhere.com/intrusion-detection-system

с этим запросом, используя Apollo в Reactjs:

const PREDICT_ATTACK_TYPE = gql`
  query Query($packets: List[List[String]) {
    predict(packets: $packets)
  }
`;
// features is an array of arrays of strings: List[List[String]] like this: [[0, tcp, http, ..., ]]
<Query query={PREDICT_ATTACK_TYPE} variables={{ features }}>
        {({ loading, error, data }) => {
          if (loading) return <div>loading..</div>;
          if (error) return <div>Error:</div>;
          console.log(data);
          return <div>{data.predict}</div>;
        }}

Но я получаю ошибку

GraphQLError: синтаксическая ошибка: ожидается $, найдено [

   5 | 
   6 | import { getFeaturesArray } from "./Utils";
   7 | 
>  8 | const PREDICT_ATTACK_TYPE = gql`
   9 |   query Query($packets: List[List[String]]) {
  10 |     predict(packets: $packets)
  11 |   }

1 Ответ

1 голос
/ 22 мая 2019

Хотя технически List является типом в GraphQL, на него нельзя ссылаться в документе GraphQL по имени.При указании List определенного типа просто заключите его в квадратные скобки ([ ]).

query Query($packets: [[String]]) {
  predict(packets: $packets)
}

Здесь [[String]] обозначает List из List из String s.

Вы видите вышеупомянутую ошибку, потому что парсер регистрирует тип List как тип для $packets и переходит к следующему действительному символу, который должен быть $, чтобы указатьначало следующего определения переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...