Теперь, когда я (немного) лучше понимаю сообщество, стоящее за 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
Или, если вы опаздываете, ознакомьтесь с двумя первыми сообщениями.