GraphQL — мова запитів і маніпуляції даними з відкритим кодом для API і середовище виконання для обслуговування запитів з наявних даних. GraphQL розробив Facebook у 2012, а публічний реліз відбувся 2015 року. 7 листопаду 2018, GraphQL було переведено від Facebook до новоутвореної GraphQL Фундації, яку прихистила неприбуткова Linux Фундація.
Тип | d і d |
---|---|
Автор | Meta Platforms |
Розробники | Facebook і спільнота |
Перший випуск | 2015 |
Стабільний випуск | червень 2018 |
Операційна система | Багатоплатформна |
Мова програмування | Втілена на Java, JavaScript, Ruby, Scala ті інших. |
Ліцензія | d |
Репозиторій | github.com/graphql/graphql-spec |
Вебсайт | graphql.org |
У своїй промові 2016 року Лі Байрон[] розповів про свій план із впровадження GraphQL:
- 1-3 місяці — Хобі і особисті проєкти
- 6 місяців — Реалізації на 3+ мовах
- 9-12 місяців — Нові стартапи і маленькі компанії
- 1,5-2 роки — Реалізації на 10+ мовах (в дійсності зайняло 3 місяці)
- 2-4 роки — Великі компанії і технологічні гіганти
- 4-5 років — Повсюдність!
Ціль Байрона зробити GraphQL всюдисутнім поміж вебплатформ.
GraphQL надає підхід розробки веб API і його можна порівнювати і протиставляти REST та іншим архітектурам вебсервісів. Він дозволяє клієнтам визначати структуру потрібних даних і таку саму структуру повертає сервер, таким чином запобігаючи передачі надлишкових даних, але це впливає на дієвість вебкешування результатів запитів. Гнучкість і багатість мови запитів, що може бути не потрібна для простих API. Він складається з системи типів, мови запитів і семантики виконання, статичної валідації і інтроспекції.
GraphQL підтримує читання, писання (змінювання) і підписування на зміни даних (оновлення в реальному часі — зазвичай втілені за допомогою Webhook).
Сервери GraphQL доступні на багатьох мовах включно з Haskell, JavaScript, Perl, Python, Ruby, Java, C#, Scala, Go, Elixir, Erlang, PHP, R і Clojure.
Термінологія
Схема
Схема визначає систему типів. Вона описує множину можливих даних (об'єктів, полів, зв'язків та ін.) до чого клієнт може доступитись. Виклики від клієнта валідуються і виконуються згідно зі схемою. Клієнт може знайти інформацію про схему через інтроспекцію. Схему зберігають на GraphQL API сервері.
Поле
Поле — це одиниця даних, яку можна отримати з об'єкта. З офіційної документації Мова запитів GraphQL це, по суті, вибирання полів з об'єктів.
Аргумент
Це множина пар ключ-значення припасованих до певного поля. Кожне поле на типі об'єкта може мати нуль або більше аргументів, наприклад поле length
:
type Starship { id: ID! length(unit: LengthUnit = METER): Float }
Див. також
Примітки
- GraphQL June 2018 Release Notes. Архів оригіналу за 16 жовтня 2020. Процитовано 26 March 2019.
- GraphQL: A query language for APIs. Архів оригіналу за 26 квітня 2016. Процитовано 22 березня 2020.
- GraphQL: A data query language. Архів оригіналу за 8 січня 2019. Процитовано 22 березня 2020.
- Facebook’s GraphQL gets its own open-source foundation. TechCrunch (амер.). Архів оригіналу за 22 січня 2019. Процитовано 7 листопада 2018.
- The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL - The Linux Foundation. The Linux Foundation (амер.). 6 листопада 2018. Архів оригіналу за 28 січня 2019. Процитовано 7 листопада 2018.
- Anthony, Art. Is GraphQL Moving Toward Ubiquity?. NordicAPIs. Архів оригіналу за 19 вересня 2020. Процитовано 22 березня 2020.
- GraphQL vs REST: Overview. Phil Sturgeon (брит.). Архів оригіналу за 26 квітня 2020. Процитовано 25 листопада 2018.
- Why use GraphQL, good and bad reasons. Honest Engineering (амер.). 4 серпня 2018. Архів оригіналу за 26 листопада 2018. Процитовано 26 листопада 2018.
- GraphQL Fundamentals. Howto GraphQL. Архів оригіналу за 5 липня 2018. Процитовано 4 липня 2018.
- GraphQL. facebook.github.io. Facebook. Архів оригіналу за 18 липня 2018. Процитовано 4 липня 2018.
- Hasura – Instant Realtime GraphQL on Postgres. Hasura. Архів оригіналу за 28 жовтня 2019. Процитовано 24 жовтня 2019.
- GraphQL js. Архів оригіналу за 15 квітня 2020. Процитовано 22 березня 2020.
- GraphQL - Perl implementation of GraphQL. Архів оригіналу за 17 травня 2020. Процитовано 22 березня 2020.
- Graphene. graphene-python.org. Архів оригіналу за 12 жовтня 2015. Процитовано 18 червня 2017.
- Absinthe: The GraphQL toolkit for Elixir. Архів оригіналу за 6 липня 2018. Процитовано 19 липня 2018.
Посилання
- Офіційний сайт
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
GraphQL mova zapitiv i manipulyaciyi danimi z vidkritim kodom dlya API i seredovishe vikonannya dlya obslugovuvannya zapitiv z nayavnih danih 2 GraphQL rozrobiv Facebook u 2012 a publichnij reliz vidbuvsya 2015 roku 3 7 listopadu 2018 GraphQL bulo perevedeno vid Facebook do novoutvorenoyi GraphQL Fundaciyi yaku prihistila nepributkova Linux Fundaciya 4 5 GraphQLTipgrafova mova zapitivd i vebPPIdAvtorMeta PlatformsRozrobnikiFacebook i spilnotaPershij vipusk2015Stabilnij vipuskcherven 2018 1 Operacijna sistemaBagatoplatformnaMova programuvannyaVtilena na Java JavaScript Ruby Scala ti inshih Licenziyamodifikovana licenziya BSDdRepozitorijgithub com graphql graphql specVebsajtgraphql org U svoyij promovi 2016 roku Li Bajron hto ce rozpoviv pro svij plan iz vprovadzhennya GraphQL 6 1 3 misyaci Hobi i osobisti proyekti 6 misyaciv Realizaciyi na 3 movah 9 12 misyaciv Novi startapi i malenki kompaniyi 1 5 2 roki Realizaciyi na 10 movah v dijsnosti zajnyalo 3 misyaci 2 4 roki Veliki kompaniyi i tehnologichni giganti 4 5 rokiv Povsyudnist Cil Bajrona zrobiti GraphQL vsyudisutnim pomizh vebplatform GraphQL nadaye pidhid rozrobki veb API i jogo mozhna porivnyuvati i protistavlyati REST ta inshim arhitekturam vebservisiv Vin dozvolyaye kliyentam viznachati strukturu potribnih danih i taku samu strukturu povertaye server takim chinom zapobigayuchi peredachi nadlishkovih danih ale ce vplivaye na diyevist vebkeshuvannya rezultativ zapitiv Gnuchkist i bagatist movi zapitiv sho mozhe buti ne potribna dlya prostih API 7 8 9 Vin skladayetsya z sistemi tipiv movi zapitiv i semantiki vikonannya statichnoyi validaciyi i introspekciyi GraphQL pidtrimuye chitannya pisannya zminyuvannya i pidpisuvannya na zmini danih onovlennya v realnomu chasi zazvichaj vtileni za dopomogoyu Webhook 10 Serveri GraphQL dostupni na bagatoh movah vklyuchno z Haskell 11 JavaScript 12 Perl 13 Python 14 Ruby Java C Scala Go Elixir 15 Erlang PHP R i Clojure Zmist 1 Terminologiya 1 1 Shema 1 2 Pole 1 3 Argument 2 Div takozh 3 Primitki 4 PosilannyaTerminologiyared Shemared Shema viznachaye sistemu tipiv Vona opisuye mnozhinu mozhlivih danih ob yektiv poliv zv yazkiv ta in do chogo kliyent mozhe dostupitis Vikliki vid kliyenta validuyutsya i vikonuyutsya zgidno zi shemoyu Kliyent mozhe znajti informaciyu pro shemu cherez introspekciyu Shemu zberigayut na GraphQL API serveri Polered Pole ce odinicya danih yaku mozhna otrimati z ob yekta Z oficijnoyi dokumentaciyi Mova zapitiv GraphQL ce po suti vibirannya poliv z ob yektiv Argumentred Ce mnozhina par klyuch znachennya pripasovanih do pevnogo polya Kozhne pole na tipi ob yekta mozhe mati nul abo bilshe argumentiv napriklad pole length type Starship id ID length unit LengthUnit METER Float Div takozhred OpenAPIPrimitkired GraphQL June 2018 Release Notes Arhiv originalu za 16 zhovtnya 2020 Procitovano 26 March 2019 GraphQL A query language for APIs Arhiv originalu za 26 kvitnya 2016 Procitovano 22 bereznya 2020 GraphQL A data query language Arhiv originalu za 8 sichnya 2019 Procitovano 22 bereznya 2020 Facebook s GraphQL gets its own open source foundation TechCrunch amer Arhiv originalu za 22 sichnya 2019 Procitovano 7 listopada 2018 The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL The Linux Foundation The Linux Foundation amer 6 listopada 2018 Arhiv originalu za 28 sichnya 2019 Procitovano 7 listopada 2018 Anthony Art Is GraphQL Moving Toward Ubiquity NordicAPIs Arhiv originalu za 19 veresnya 2020 Procitovano 22 bereznya 2020 GraphQL vs REST Overview Phil Sturgeon brit Arhiv originalu za 26 kvitnya 2020 Procitovano 25 listopada 2018 Why use GraphQL good and bad reasons Honest Engineering amer 4 serpnya 2018 Arhiv originalu za 26 listopada 2018 Procitovano 26 listopada 2018 GraphQL Fundamentals Howto GraphQL Arhiv originalu za 5 lipnya 2018 Procitovano 4 lipnya 2018 GraphQL facebook github io Facebook Arhiv originalu za 18 lipnya 2018 Procitovano 4 lipnya 2018 Hasura Instant Realtime GraphQL on Postgres Hasura Arhiv originalu za 28 zhovtnya 2019 Procitovano 24 zhovtnya 2019 GraphQL js Arhiv originalu za 15 kvitnya 2020 Procitovano 22 bereznya 2020 GraphQL Perl implementation of GraphQL Arhiv originalu za 17 travnya 2020 Procitovano 22 bereznya 2020 Graphene graphene python org Arhiv originalu za 12 zhovtnya 2015 Procitovano 18 chervnya 2017 Absinthe The GraphQL toolkit for Elixir Arhiv originalu za 6 lipnya 2018 Procitovano 19 lipnya 2018 Posilannyared Oficijnij sajt Otrimano z https uk wikipedia org w index php title GraphQL amp oldid 39844749