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

Роботодавець
Dmytro
Параметри проєкту
Варіант співпраціОдноразовий проєкт
РозділРозробка для WEB
Передоплатабез передоплат
Способи оплатиГотівка, Банківський переказ
Прийом заявоквід сьогодні, 12:54 до 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-ендпоінтів
Робота охоплює весь стек 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-ендпоінтів