15%

БпСстСтС 15% ΠΎΡ‚ всички услуги Π·Π° хостинг

ВСствайтС умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Ρ‚Π΅ ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄:

Skills
Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
21.11.2024

Π ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° 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, помислСтС ΠΊΠ°ΠΊ Ρ‚ΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° опрости ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ във Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ.

15%

БпСстСтС 15% ΠΎΡ‚ всички услуги Π·Π° хостинг

ВСствайтС умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Ρ‚Π΅ ΠΎΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄:

Skills
Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ