GraphQL - GraphQL

GraphQL
GraphQL Logo.svg
Разработчики)Facebook, и сообщество
изначальный выпуск14 сентября 2015 г. (2015-09-14)
Стабильный выпуск
Июнь 2018 г. (2018-06)[1]
Репозиторийgithub.com/ graphql/ graphql-spec
Написано вРеализации в Ява, JavaScript, Рубин, Scala, другие.
Операционная системаКроссплатформенность
Интернет сайтgraphql.org

GraphQL это данные из открытых источников запрос и манипуляция язык для API, и среда выполнения для выполнения запросов с существующими данными.[2] GraphQL был разработан внутри компании Facebook в 2012 году до публичного выпуска в 2015 году.[3] 7 ноября 2018 года проект GraphQL был перенесен из Facebook в недавно созданный GraphQL Foundation, размещенный некоммерческой организацией. Linux Foundation.[4][5] С 2012 года развитие GraphQL следовало графику принятия, точно установленному Ли Байроном, создателем GraphQL.[6] Цель Байрона - сделать GraphQL вездесущим на всех веб-платформах.

Он обеспечивает подход к разработке веб-API и сравнивается и контрастирует с ОТДЫХ и другие веб-сервис архитектуры. Он позволяет клиентам определять структуру требуемых данных, и та же структура данных возвращается с сервера, что предотвращает возврат слишком больших объемов данных, но это влияет на эффективность веб-кеширование результатов запроса может быть. Гибкость и богатство языка запросов также добавляют сложности, которые могут не иметь смысла для простых API.[7][8][9] Он состоит из системы типов, языка запросов и семантики выполнения, статической проверки и тип интроспекции.

GraphQL поддерживает чтение, запись (изменение) и подписку на изменения данных (обновления в реальном времени - чаще всего реализуются с использованием WebHooks ).[10] Серверы GraphQL доступны для нескольких языков, включая Haskell,[11] JavaScript,[12] Perl,[13] Python,[14] Рубин, Ява, C ++,[15] C #, Scala, Идти, Ржавчина, Эликсир,[16] Erlang, PHP, р, и Clojure.

9 февраля 2018 года язык определения схемы GraphQL (SDL) стал частью спецификации.[17]

Пример

ПОЧТОВЫЙ запрос:

{    заказы {        я бы        список товаров {            товар {                имя                цена            }            количество        }        Общая сумма    }}

Отвечать:

{    "данные": {        "заказы": [            {                "я бы": 1,                "список товаров": [                    {                        "товар": {                            "имя": "апельсин",                            "цена": 1.5                        },                        "количество": 100                    }                ],                "Общая сумма": 150            }        ]    }}

Смотрите также

Рекомендации

  1. ^ «Примечания к выпуску GraphQL за июнь 2018 г.». Получено 26 марта 2019.
  2. ^ «GraphQL: язык запросов для API».
  3. ^ «GraphQL: язык запросов данных».
  4. ^ «Facebook GraphQL получает собственный фундамент с открытым исходным кодом». TechCrunch. Получено 7 ноября 2018.
  5. ^ «Linux Foundation объявляет о намерении сформировать новый фонд для поддержки GraphQL - Linux Foundation». Фонд Linux. 6 ноября 2018 г.. Получено 7 ноября 2018.
  6. ^ Энтони, ст. «Движется ли GraphQL к повсеместности?». NordicAPI.
  7. ^ "GraphQL vs REST: Обзор". Фил Стерджен. Получено 25 ноября 2018.
  8. ^ «Зачем использовать GraphQL, хорошие и плохие причины». Честная инженерия. 4 августа 2018 г.. Получено 26 ноября 2018.
  9. ^ "Основы GraphQL". Как сделать GraphQL. Получено 4 июля 2018.
  10. ^ "GraphQL". facebook.github.io. Facebook. Архивировано из оригинал 18 июля 2018 г.. Получено 4 июля 2018.
  11. ^ "Hasura - Instant Realtime GraphQL на Postgres". Хасура. Получено 24 октября 2019.
  12. ^ "GraphQL js".
  13. ^ «GraphQL - Perl-реализация GraphQL».
  14. ^ «Графен». graphene-python.org. Получено 18 июн 2017.
  15. ^ graphql / libgraphqlparser, GraphQL, 27 мая 2020 г., получено 30 мая 2020
  16. ^ «Абсент: набор инструментов GraphQL для Эликсира». Получено 19 июля 2018.
  17. ^ "GraphQL SDL включен в репозиторий Github".

внешняя ссылка