GraphQL: The Documentary
История GraphQL: от внутреннего решения Facebook до open source стандарта индустрии
Рождение в Facebook
2012: мобильное приложение требует нового подхода
Источник
Telegram: book_cube
Оригинальный пост с обзором документального фильма
В 2012 году команда Facebook столкнулась с серьёзной проблемой. Мобильное приложение для iOS работало ужасно медленно. Ли Байрон (Lee Byron), Дэн Шейфер (Dan Schafer) и Ник Шрок (Nick Schrock) начали работу над внутренним проектом под названием "SuperGraph".
Проблема REST для мобильных приложений
- •Over-fetching: REST возвращал гораздо больше данных, чем нужно мобильному клиенту
- •Under-fetching: для одного экрана требовалось несколько запросов к разным endpoints
- •Versioning hell: разные версии API для разных клиентов
Революционная идея
Клиент сам определяет, какие данные ему нужны
Связанная тема
Web API Design
Принципы проектирования современных API
GraphQL перевернул традиционный подход к API: вместо множества жёстких endpoints — один endpoint с гибким языком запросов. Клиент описывает структуру нужных данных, а сервер возвращает ровно то, что запрошено.
REST подход
GET /users/123
GET /users/123/posts
GET /users/123/friends
// 3 запроса, лишние данные
GraphQL подход
query {
user(id: 123) {
name, posts { title }
}
}
// 1 запрос, точные данные
Выход в Open Source
2015: GraphQL становится достоянием сообщества
Книга
Learning GraphQL
Практическое руководство от Eve Porcello и Alex Banks
После трёх лет внутреннего использования Facebook принял решение открыть GraphQL миру. Это было непростое решение — технология давала Facebook конкурентное преимущество. Но команда верила, что открытый стандарт принесёт больше пользы всей индустрии.
Ключевые этапы
Экосистема и влияние
Apollo, Relay, Hasura и другие
Практика
API Gateway
Паттерны проектирования API в микросервисной архитектуре
Вокруг GraphQL сформировалась богатая экосистема. Apollo стал де-факто стандартом для клиентских приложений, предлагая кэширование, state management и developer tools. Hasura позволил автоматически генерировать GraphQL API поверх PostgreSQL.
Full-stack платформа для GraphQL
GraphQL клиент от Facebook
Instant GraphQL APIs

