Розробка GraphQL API для мобільного і SPA застосунків

Ivan
Роботодавець

Ivan

9 проєктів
Параметри проєкту
Варіант співпраціОдноразовий проєкт
Передоплатабез передоплат
Способи оплатиГотівка, Банківський переказ
Прийом заявоквід до 26.08.2026
Опис проєкту
Ми переходимо зі старіючого REST API на GraphQL, щоб обслуговувати одразу двох клієнтів — мобільний застосунок на React Native і SPA на React. Латати старі ендпоінти ми не хочемо: потрібен шар GraphQL, зібраний з нуля і по-розумному, тому шукаємо розробника рівня senior із реальним досвідом Apollo Server у production. Мета — єдиний, акуратно типізований граф, на який зможуть спиратися обидва клієнти, з передбачуваною продуктивністю і без раптових N+1, коли екран підвантажує список пов'язаних записів.

Робота охоплює весь стек GraphQL-бекенду: type-first схему для ключових сутностей, резолвери поверх оптимізованого шару PostgreSQL, JWT-аутентифікацію, проброшену через context, та авторизацію на рівні полів, щоб різні ролі бачили лише належне. Важлива й real-time частина — статус замовлення і сповіщення мають доходити до клієнтів через WebSocket-підписки, а не постійним опитуванням. Крім коректності нам важливі безпека й контроль вартості запитів: обмеження глибини і складності, а також persisted queries для мобільних клієнтів.

Оскільки це заміна живого API, чистий шлях міграції та зрозуміла документація — частина задачі, а не бонус. Розкажіть про GraphQL API, який ви вже випускали, і як вирішували питання авторизації та продуктивності. Детальний обсяг нижче.

1. Дизайн схеми
— Type-first: User, Product, Order, Review, Notification
— Типи введення та мутації
— Кастомні скалари (Date, JSON, Upload)
— Enum-типи для статусних полів

2. Реалізація
— Apollo Server 4 + Express middleware
— DataLoader для запобігання N+1 запитів
— JWT-аутентифікація через context
— Авторизація на рівні полів (middleware / директиви)
— WebSocket-підписки (статус замовлення, сповіщення)

3. Продуктивність і якість
— Обмеження глибини/складності запитів
— Persisted queries для мобільних клієнтів
— Оптимізація PostgreSQL (EXPLAIN ANALYZE)
— Юніт-тести резолверів (Jest + Supertest)
— Інтеграція Apollo Studio

4. Документація та передача
— Документована схема (описи всіх типів)
— Postman/Insomnia-колекція
— Гайд міграції з REST-ендпоінтів
Автор проєкту: Ivan