Теперь, когда я (немного) лучше понимаю сообщество, стоящее за GraphQL и проблемы, которые он лучше всего подходит для решения, пора приступить к делу и применить полученные знания на практике.

Как вы определяете репо репо?

Мой проект был вдохновлен статьей, которую я прочитал в Hacker Noon о самых популярных проектах JavaScript на GitHub. Это заставило меня задуматься, какие показатели используются для измерения популярности проекта и, следовательно, репутации разработчика.

Я попытаюсь создать приложение, которое использует комбинацию Pull Requests, Commits и Stargazer, чтобы измерить доверие разработчика к последней версии GitHub GraphQL API.

Динамические запросы - непростая задача

Я знаю, что у других могут быть противоположные взгляды на то, какие метрики входят в эту меру `` уличного доверия '', и было бы здорово, если бы мое приложение позволяло пользователям выбирать свои собственные метрики, но именно здесь вступают в силу ограничения GraphQL с клиентом Apollo (по крайней мере, новичку разобраться сложно).

Запросы GraphQL необходимо размещать вне компонента React, что затрудняет передачу входных данных из формы в запрос и обратно.

const gqlQuery = graphql( gql` 
 query queryName($variable_name = Type!) {...}`, {
 options: ({ variable_name }) => {
  return {
   variables: variable_value 
  }
 }
});
class className extends React.Component {
  constructor(props) {
    super(props);
    this.state = {...};
  }
  render() {
    return {...}
  }
}
const classNameWithInfo = gqlQuery(className);
export default classNameWithInfo;

Регулярные запросы тоже

Я также обнаружил, что некоторые API-интерфейсы GraphQL не поддерживают CORS, поэтому отклоняйте любой запрос, сделанный на стороне клиента. Я изучал Yelp API, когда столкнулся с этой проблемой, а также с некоторыми другими. Мэтт Крегер создал прокси-сервер, который, по сути, позаботился обо всей аутентификации и авторизации, прежде чем перенаправить запросы из моего клиентского приложения в Yelp API - если вы столкнетесь с той же проблемой, подтолкните его, я уверен, что он откроет исходный код Это .

Прогресс!

Столкнувшись со всеми этими проблемами и пару раз изменив свой проект, я наконец кое-что добился. Я настраиваю конечную точку API, и она работает (с жестко заданными переменными)!

Итак, что я узнал? GraphQL очень полезен, и он будет только улучшаться по мере того, как все больше разработчиков будут его внедрять, находить ошибки и сообщать о них.

Если у вас есть какие-либо комментарии, предложения или советы, оставьте их в комментариях ниже или напишите мне в Твиттере @sitara_ramesh. Следите за грандиозным финалом!

Да, и если вы это пропустили - Я делюсь ресурсами, которые считаю полезными в этом репо.

Этот пост является частью серии, прочтите следующий пост.

Путешествие новичка в GraphQL - Часть 3

Или, если вы опаздываете, ознакомьтесь с двумя первыми сообщениями.

Путешествие новичка в GraphQL - Часть 0

Путешествие новичка в GraphQL - Часть 1