Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π·Π° GraphQL
GraphQL Π² AlexHost: ΠΠ°Ρ ΡΠ°Π½Π²Π°Π½Π΅ Π½Π° API Ρ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎΡΡ
ΠΠ°ΡΠΎ GraphQL Π½Π° ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΡΡΡΠ²ΡΡ? GraphQL Π΅ ΡΠΎΠΊΠ·Π²Π΅Π·Π΄Π°ΡΠ° Π½Π° API, ΠΊΠΎΡΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΡΠ΅ ΡΠ°ΠΌΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ Π²ΠΈ ΡΡΡΠ±Π²Π°Ρ – Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ Π±Π΅Π· ΠΈΠ·Π»ΠΈΡΠ½Π° ΡΡΠ΅ΡΠ°. Π ΡΡΡΠ΅ΡΠ°Π½ΠΈΠ΅ ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈΡΠ΅ ΡΡΡΠ²ΡΡΠΈ Π½Π° AlexHost ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½Π° ΡΠΊΠΎΡΠΎΡΡ, ΠΏΡΠ»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Π·Π°ΡΠΈΡΠ°, Π·Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΡΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΈ Π·Π°ΡΠ²ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΊΠ°ΡΠΎ ΡΠ°ΠΌΠΏΠΈΠΎΠ½. GraphQL ΡΠ΅ ΡΠ°ΠΆΠ΄Π° Π²ΡΠ² Facebook ΠΏΡΠ΅Π· 2012 Π³., Π° ΠΏΡΠ΅Π· 2015 Π³. ΡΡΠ°Π²Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΠΏΡΠ΅Π²ΡΠ·Ρ ΠΎΠΆΠ΄Π° REST ΠΏΠΎ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ ΠΈ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ. ΠΠ΅ΠΊΠ° ΡΠ΅ ΠΏΠΎΡΠΎΠΏΠΈΠΌ Π² ΡΠΎΠ²Π° ΠΊΠ°ΠΊΠ²ΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅.
1. Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° GraphQL
GraphQL ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π΄Π° Π·Π°ΡΠ²ΡΠ²Π°Ρ ΡΠ°ΠΌΠΎ Π΄Π°Π½Π½ΠΈΡΠ΅, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ, ΠΊΠΎΠ΅ΡΠΎ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ ΠΏΠΎ-Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΎΡ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈΡΠ΅ REST API, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ΡΡΠΎ Π²ΡΡΡΠ°Ρ ΡΠΈΠΊΡΠΈΡΠ°Π½Π° ΡΡΡΡΠΊΡΡΡΠ° ΠΎΡ Π΄Π°Π½Π½ΠΈ. Π’Π°Π·ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΎΡΡ Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π² ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΠ΅ΡΡΠΎΡΠ½Π°ΡΠ° Π»Π΅Π½ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π°.
2. ΠΡΠ½ΠΎΠ²Π½ΠΈ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° GraphQL
2.1. ΠΡΠ΅ΡΠΈΠ·Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ
Π‘ GraphQL ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π·Π°Π΄Π°Π²Π°Ρ ΡΠ²ΠΎΠΈΡΠ΅ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡ Π·Π° Π΄Π°Π½Π½ΠΈ Π² Π΅Π΄Π½Π° Π·Π°ΡΠ²ΠΊΠ°. ΠΠΌΠ΅ΡΡΠΎ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΊΡΠ°ΠΉΠ½ΠΈ ΡΠΎΡΠΊΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ΅ΡΡΡΡΠΈ, GraphQL Π΄Π°Π²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π΅Π΄Π½Π° Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π° ΠΊΡΠ°ΠΉΠ½Π° ΡΠΎΡΠΊΠ°, Π² ΠΊΠΎΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΠΎΠΈΡΠΊΠ°Ρ ΡΠΎΡΠ½Π°ΡΠ° ΡΠΎΡΠΌΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ.
2.2. Π‘ΠΈΠ»Π½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½Π° ΡΡ Π΅ΠΌΠ°
GraphQL API ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Ρ ΡΡΠ΅Π· ΡΡ Π΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΎΡΠ΅ΡΡΠ°Π²Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π°Π»ΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ ΡΠ΅Ρ Π½ΠΈΡΠ΅ Π²ΡΡΠ·ΠΊΠΈ. Π’Π°Π·ΠΈ ΡΡ Π΅ΠΌΠ° Π΄Π΅ΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΈ ΡΡΡΠ²ΡΡΠ°, ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΠΉΠΊΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΠΉΠΊΠΈ Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ°Ρ ΠΊΠ°ΠΊ Π΄Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²Π°Ρ Ρ API.
2.3. ΠΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅
GraphQL ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½ΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅. Π’ΠΎΠ²Π° Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π΄Π°Π½Π½ΠΈ Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΊΠ°ΡΠΎ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½Π° ΡΠ΅Π½ΠΈΡΠ΅ Π½Π° Π°ΠΊΡΠΈΠΈΡΠ΅.
2.4. ΠΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡ
GraphQL API ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΈΠ½ΡΡΠΎΡΠΏΠ΅ΠΊΡΠΈΡΠ°Π½ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΡΡ ΡΠΏΡΠ°Π²ΠΊΠΈ Π² ΡΠ°ΠΌΠ°ΡΠ° ΡΡ Π΅ΠΌΠ°. Π’ΠΎΠ²Π° ΠΎΠ·Π½Π°ΡΠ°Π²Π°, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΈΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅ Π½Π° API ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π½Π°Π»ΠΈΡΠ½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅, Π·Π°ΡΠ²ΠΊΠΈ ΠΈ ΠΌΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΎΠΏΠΈΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅.
3. ΠΠ°ΠΏΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ° Ρ GraphQL
Π‘ΡΡΠΏΠΊΠ° 1: Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΡΠ²ΡΡ GraphQL
ΠΠ° Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ GraphQL, ΡΡΡΠ±Π²Π° Π΄Π° Π½Π°ΡΡΡΠΎΠΈΡΠ΅ GraphQL ΡΡΡΠ²ΡΡ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΅Π·ΠΈΡΠΈ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ ΠΈ ΡΠ°ΠΌΠΊΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- Node.js: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Apollo Server ΠΈΠ»ΠΈ Express-GraphQL.
- Python: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Graphene.
- Java: ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Spring Boot Ρ GraphQL.
ΠΡΠΎ Π΅Π΄ΠΈΠ½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΡΡ GraphQL ΡΡΡΠ²ΡΡ Ρ Node.js ΠΈ Apollo Server:
const { ApolloServer, gql } = require('apollo-server');
// Define your type definitions
const typeDefs = gql`
type Query {
hello: String
}`;
// Define your resolvers
const resolvers = {
Query: {
hello: () => 'Hello, world!',
},
};
// Create the server
const server = new ApolloServer({ typeDefs, resolvers });
// Start the server
server.listen().then(({ url }) => {
console.log(`π Server ready at ${url}`);
});Π‘ΡΡΠΏΠΊΠ° 2: ΠΠΏΡΠ΅Π΄Π΅Π»Π΅ΡΠ΅ Π²Π°ΡΠ°ΡΠ° ΡΡ Π΅ΠΌΠ°
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΡ Π΅ΠΌΠ°, ΠΊΠΎΡΡΠΎ ΠΎΠΏΠΈΡΠ²Π° ΡΠΈΠΏΠΎΠ²Π΅ΡΠ΅, Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈ ΠΌΡΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° Π²Π°ΡΠΈΡ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π΄Π°Π½Π½ΠΈ. ΠΠ΄Π½Π° ΠΏΡΠΎΡΡΠ° ΡΡ Π΅ΠΌΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
type Book { title: String author: String } type Query { books: [Book] }Π‘ΡΡΠΏΠΊΠ° 3: ΠΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΡΠ΅Π·ΠΎΠ»Π²Π΅ΡΠΈ
Π Π΅Π·ΠΎΠ»Π²Π΅ΡΠΈΡΠ΅ ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡ Π·Π° Π²ΡΡΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡΠ΅ Π·Π° Π²ΡΡΠΊΠΎ ΠΏΠΎΠ»Π΅ Π² ΡΡ Π΅ΠΌΠ°ΡΠ°. Π©Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ ΡΠ΅Π·ΠΎΠ»Π²Π΅ΡΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π²Π»ΠΈΡΠ°ΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ Π²Π°ΡΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ ΠΈΠ·ΡΠΎΡΠ½ΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ.
4. ΠΠ°ΠΏΠΈΡΠ²Π°Π½Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΡΡΡΠ²ΡΡΡΡ Π²ΠΈ Π΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΈ ΡΡ Π΅ΠΌΠ°ΡΠ° Π΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Π·Π° Π΄Π°Π½Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° GraphQL. ΠΡΠΈΠΌΠ΅ΡΠ½Π° Π·Π°ΡΠ²ΠΊΠ° Π·Π° ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ½ΠΈΠ³ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:
{ books { title author } }5. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
GraphQL Π΅ Π½ΠΎΠ²Π°ΡΠΎΡΡΠΊΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊΡΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° API, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΠΈΡΠ΅ Π΄Π° ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠΎΡΠ½ΠΎ ΡΠ΅Π·ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΎΡ ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π½ΡΠΆΠ΄Π°ΡΡ, ΠΊΠ°ΡΠΎ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅. ΠΠ°ΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΡΠΈΠ·Π½ΠΎ ΠΈΠ·Π²Π»ΠΈΡΠ°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΠΈΠ»Π½ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΡ Π΅ΠΌΠΈ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π² ΡΠ΅Π°Π»Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°ΡΠ΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΈ ΠΈ Π³ΡΠ²ΠΊΠ°Π²ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠ²Π°ΡΠ΅ GraphQL, ΠΏΠΎΠΌΠΈΡΠ»Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠΏΡΠΎΡΡΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π²ΡΠ² Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ.
