GrafQL
GraphQL – типизированный язык запросов с открытым исходным кодом. Использует собственный язык SDL (Schema Definition Language). Основные особенности – нужен только один endpoint, ответ возвращает только те данные, которые затребованы в запросе.
Схема GraphQL API включает:
- Типы. Кастомные объекты, определяющие, как будет выглядеть API. Например – для приложения, работающего с соцсетями, стоит объявить типы Users, Posts, Likes. 
- Поля. Включены в типы и возвращают определённые виды данных. Например – в тип Users стоит включить поля ID, name, age. Знак «!» в конце поля говорит, что поле не может быть пустым. 
- Резолверы (resolvers). Функции, которые отвечают за получение данных для каждого поля в схеме. 
Пример кода:
type User {
    id: ID!
    name: String!
    age: Int
}Типы данных: Int, Float, String, Boolean, ID, кастомные типы.
Операции в GraphQL
- Query (запрос). Аналог GET в REST, позволяет получать данные. 
- Mutation (изменение). Аналог POST, PUT и DELETE в REST, позволяет добавлять и изменять данные. 
- Subscription (подписка). Обеспечивает связь в реальном времени. При изменении данных сервер выполняет определённый в подписке запрос и отсылает обновлённые данные клиенту. 
Last updated
