Упростите использование Lens API с помощью @use-lens и graphql-codegen.
🔗 Ссылки
📰 Опубликовано
🤓 Интро
Недавно я использовал Lens API для создания некоторых игровых приложений и заметил повторяющуюся задачу: я создавал запросы и мутации Lens API для каждого проекта и использовал Генератор кода GraphQL для использования хуков React с клиентом Apollo.
Выполнив ту же работу во второй раз, я решил создать библиотеку для более удобного использования Lens API, которая сэкономила бы мне время на выполнение реальной работы.
Я никогда не создавал пакеты с открытым исходным кодом и подумал, что было бы здорово сделать это, даже если бы я использовал его 😅.
npm @use-lens пока содержит 2 пакета — CLI и react-apollo. Позже в этой статье я объясню, как и когда их использовать, и ту же информацию можно найти в README.md репозитория. Я объясню, как я вижу лучшее использование @use-lens/*
позже в статье.
Кроме того, мне так понравился Lens Protocol, что я создал Github Organization Use Lens, где я планирую разрабатывать и публиковать некоторые инструменты, примеры и приложения, работающие поверх Lens.
Технологии
Lens Protocol – это компонуемый и децентрализованный социальный график, готовый к использованию, чтобы вы могли сосредоточиться на создании отличного опыта, а не на масштабировании своих пользователей.
Владейте своим контентом. Собственный социальный граф. Владейте своими данными.
Если вы дочитали до этого места — вы знаете, что такое Lens API и как его использовать. Если вы здесь, чтобы проверить @use-lens
или просто проверить, как генерировать код GraphQL, изучите протокол Lens и API здесь:
Генератор кода GraphQL — это инструмент для создания готового к использованию кода из вашей схемы GraphQL и операций с помощью простого интерфейса командной строки с множеством плагинов для разных фреймворков: React, Next.js, Svelte, Vue с Apollo, URLQ и другие - вы называете это.
🧑💻 Как
Сгенерировать с помощью @use-lens/cli
npm install --save-dev @use-lens/cli
use-lens generate %PACKAGE%
с npx
npx @use-lens/cli generate %PACKAGE%
Это скопирует основные файлы Lens API в ваш репозиторий и запустит graphql-codegen
для генерации кода. По умолчанию это будет src/lens-api/index.ts
. Отсюда вы можете настроить tsconfig.json
, чтобы использовать его с @use-lens
shortening, чтобы это выглядело как использование пакета. Подробнее о том, как это сделать здесь.
С @use-lens/*
Простой npm install --save @use-lens/%PACKAGE%
и используйте его как обычный пакет.
import {
GlobalProtocolStatsDocument,
GlobalProtocolStats as GlobalProtocolStatsType,
useGlobalProtocolStatsQuery,
useGlobalProtocolStatsLazyQuery,
} from '@use-lens/react-apollo'
Ручной генератор кода GraphQL
Подход по умолчанию прост и может сопровождаться официальными документами здесь
На высоком уровне:
- установить
@graphql-codegen/cli
- выбрать плагин для своего стека: например, react-apollo и установить его
- получить схему и документы GraphQL
- создать базовый
codegen.yml
дляgraphql-codegen
- беги
graphql-codegen
В codegen.yml
нужно указать схему, документы, куда сохранять и с чем:
schema: schema.graphql # full schema; could be HTTP link documents: documents.graphql # queries and mutations that you want to have generates: ./src/my-api/index.ts: # where to save plugins: - typescript - typescript-operations - typescript-react-apollo # stack that you are going to use
⚠️ ОСТОРОЖНО
🌿 docs.lens.xyz/docs/introduction:
Этот API является бета-версией и еще не готов к работе, что означает, что мы можем изменить схемы и конечные точки в любое время без предупреждения или уведомления. Когда этот API будет готов к работе, мы удалим это предупреждение о бета-тестировании и постараемся гарантировать, что в будущем не будет никаких изменений, если только не потребуется серьезное изменение самого протокола.
Lens API еще не готов к производству, как и @use-lens/*
. Пожалуйста, имейте это в виду при переходе на производство.
Рекомендуемое использование
Если вы хотите поэкспериментировать с Lens API — не медлите и установите некоторые из @use-lens/*
пакетов — это даст вам все необходимое для начала.
Если вы хотите больше контроля — используйте @use-lens/cli
для локального создания кода. Это скопирует основные файлы, содержащиеся в пакете, и запустит graphql-codegen
.
Вы могли бы сделать больше с codegen.yml
.
👨🏫 Реагируйте с помощью клиента Apollo
Для @use-lens/react-apollo
я подготовил пример того, как его использовать.
Ознакомьтесь с исходным кодом здесь
🤝 Документы API объектива
Полный набор документов Lens API был взят из api-examples, репозитория протокола Lens, который показывает, как использовать Lens API. Такие же (или похожие) запросы приведены в качестве примеров в документах Lens API.
📚 Резюме
Если вы хотите использовать Lens API, чтобы увидеть, что это такое — упростите свой опыт разработчика, используя @use-lens или Генератор кода GraphQL.
Спасибо за прочтение! 🙇
Первоначально опубликовано на https://blog.andriishupta.dev.