Как получить параметры URL или отправить запрос ‘Get’ в graphql?

#reactjs #graphql

#reactjs #graphql

Вопрос:

Вот в чем проблема, я просто хочу использовать запрос ‘Get’ для отправки параметров на сервер на базе graphql, поскольку пользователь может сохранить URL в качестве закладки и открыть его напрямую, как в примере в Restful ‘www.xxx.com?id=abc ‘. Но в локальной среде мой интерфейс прослушивает порт 3000, а серверная часть (graphql) прослушивает порт 8000, поэтому он не может использовать ‘www.localhost.com:3000/graphql ?query={getId{id}}’ для отправки запроса, так что я мог бы сделать, чтобы решить эту проблему?

Ответ №1:

Вы можете использовать Apollo GraphQLhttps://www.apollographql.com/docs/?no-cache=1

для написания запросов GraphQL, чтобы вы могли передавать параметры

пример: (пример реакции)

 function apolloFetch(query, variablesS, headers) {
  // http link with base
  const httpLink = ApolloLink.from([
    new HttpLink({
      uri: BASE_URL,
      headers,
    }),
  ]);

  const client = new ApolloClient({
    link: logoutLink.concat(httpLink),
    cache: new InMemoryCache(),
  });

  const queryGQL = {
    query,
    variables: {
      ...variablesS,
    },
  };
  return client.query(queryGQL).then(res => res);
}
  

Запрос:

 gql`
  query(
    $name: String
    $email: String
  ) {
    patients(
      name: $name
      email: $email
    ) {
      age
      birthDate
      hobbies {
        name
      }
    }
  }
`;