GraphQL API مع Swift: دليل تعليمي خطوة بخطوة للمبتدئين

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة في GraphQL و Swift

GraphQL هي لغة استعلام حديثة لواجهات برمجة التطبيقات (API)، طورتها Facebook. على عكس REST، حيث تحصل على بنية بيانات ثابتة، تسمح GraphQL للعميل (تطبيقك بلغة Swift) بطلب الحقول التي يحتاجها فقط. هذا مهم بشكل خاص لمطوري التطبيقات المحمولة الذين يعملون مع iOS و macOS: بيانات أقل يعني حركة مرور أقل، تحميل أسرع، وتجربة مستخدم أفضل.

في هذا الدليل التعليمي، سنشرح كيفية ربط GraphQL API بمشروع Swift الخاص بك، وتنفيذ الاستعلامات والتحويرات الأساسية. سنستخدم العميل الرسمي Apollo iOS - المكتبة الأكثر شيوعًا والمدعومة للعمل مع GraphQL في نظام Apple البيئي.

بنهاية المقال، ستكون قادرًا على:

  • إعداد Apollo iOS في مشروع Xcode
  • كتابة وتنفيذ استعلام GraphQL (Query)
  • إرسال تحوير (Mutation) لتعديل البيانات
  • معالجة الردود والأخطاء


1. إعداد المشروع وتثبيت Apollo iOS

1.1. إنشاء مشروع جديد

افتح Xcode وأنشئ مشروعًا جديدًا (تطبيق iOS أو تطبيق macOS). اختر لغة Swift وواجهة SwiftUI أو UIKit - لا يهم، لأن العمل مع الشبكة لا يعتمد على إطار عمل واجهة المستخدم.



1.2. التثبيت عبر Swift Package Manager

يمكن ربط Apollo iOS بسهولة عبر SPM. انتقل إلى File → Add Packages... وألصق الرابط:

https://github.com/apollographql/apollo-ios.git

اختر أحدث إصدار ثابت (في وقت الكتابة - 1.15.0) وأضف الحزمة إلى هدفك.

قم أيضًا بتثبيت Apollo Code Generation CLI - أداة لتوليد أنواع Swift من مخطط GraphQL. أسهل طريقة هي تثبيته عبر Homebrew:

brew install apollo-ios-cli

إذا لم يكن Homebrew مثبتًا، يمكنك استخدام npm:

npm install -g apollo-ios-cli


1.3. تهيئة الإعدادات

في الطرفية، من جذر مشروعك، نفذ:

apollo-ios-cli init --module-name YourAppName --schema-namespace GraphQL

سينشئ هذا الأمر ملف apollo-codegen-config.json ومجلد GraphQL، حيث سيتم تخزين ملفات .graphql الخاصة بك.

الآن أضف مخطط الخادم إلى المشروع. إذا كان الخادم يوفر schema.json أو schema.graphqls، فانسخه إلى مجلد GraphQL. إذا لم يكن كذلك، يمكنك استخدام الأمر المدمج للتحميل:

apollo-ios-cli fetch-schema --endpoint=https://your-graphql-endpoint.com/graphql


2. كتابة أول استعلام GraphQL (Query)

2.1. إنشاء ملف .graphql

في مجلد GraphQL، أنشئ ملفًا باسم Queries.graphql واكتب استعلامًا بسيطًا. لنفترض أن لدينا API لجلب قائمة المستخدمين:

query GetUsers {  users {    id    name    email  }}


2.2. توليد كود Swift

قم بتشغيل توليد الكود من الطرفية:

apollo-ios-cli generate

بعد التوليد الناجح، في مجلد Sources/API (أو في المجلد الذي حددته)، سيظهر ملف API.swift مع أنواع GetUsersQuery و GetUsersQuery.Data وما إلى ذلك.



2.3. تنفيذ الاستعلام من Swift

الآن لننشئ مثيلًا من عميل Apollo وننفذ الاستعلام. في ملف ContentView.swift (أو أي ملف آخر) اكتب:

import Apolloimport SwiftUI

class NetworkManager { static let shared = NetworkManager() private(set) lazy var apollo = ApolloClient(url: URL(string: "https://your-graphql-endpoint.com/graphql")!)}

struct ContentView: View { @State private var users: [GetUsersQuery.Data.User] = [] var body: some View { List(users, id: \\.id) { user in VStack(alignment: .leading) { Text(user.name)

المدونات

توصيات الكتب