استدعاء APIs باستخدام URLSession
اجلب البيانات باستخدام async/await
استدعاء APIs باستخدام URLSession درس مجاني في SwiftUI Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SwiftUI Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SwiftUI Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
What URLSession Does
URLSession is Apple framework for talking to the network. You give it a URL and it fetches the response for you. 🌐
Building a URL
Start with a valid URL. The initializer is optional because text can be malformed, so unwrap it before using.
let url = URL(string: "https://api.example.com/users")!The async Fetch Call
The modern way to fetch is async/await. You await data from a URL and your code reads top to bottom, like normal.
let (data, response) = try await
URLSession.shared.data(from: url)You Get Data and Response
The call returns two things: the raw data bytes and a response describing status. You usually decode the data next.
Combining Fetch and Decode
Fetch then decode in two short steps. await the bytes, then hand them to JSONDecoder to get a typed value.
let (data, _) = try await URLSession.shared.data(from: url)
let users = try JSONDecoder().decode([User].self, from: data)Async Functions
Wrap network work in an async function. Marking it async lets you use await inside and keeps the UI responsive.
func loadUsers() async throws -> [User] { }Why throws Matters
Networking can fail, so fetch functions are throws. Callers must try, which forces you to think about errors.
Checking the Status Code
Cast the response and read its statusCode. A value of 200 means success, while 404 or 500 signal problems.
let http = response as? HTTPURLResponse
if http?.statusCode == 200 { }Reusing the Shared Session
For most apps, URLSession.shared is all you need. It is a ready-made session with sensible default settings.
Custom Requests
For headers or POST bodies, build a URLRequest. Set the method and fields, then pass the request to the session.
var request = URLRequest(url: url)
request.httpMethod = "GET"Keep Networking Off the UI
Always do fetching in an async context, never on the main thread directly, so taps and scrolling stay smooth.
Quick Check
Quick check on fetching data from a URL.
Recap: URLSession
You can now await data from a URL with URLSession, check the status code, and decode the bytes inside an async throwing function. 🚀
الأسئلة الشائعة
هل درس «استدعاء APIs باستخدام URLSession» مجاني؟
نعم — نص درس «استدعاء APIs باستخدام URLSession» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SwiftUI Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SwiftUI Academy 4 دروس في المجموع.
ماذا ستتعلم في «استدعاء APIs باستخدام URLSession»؟
اجلب البيانات باستخدام async/await تتمرن على SwiftUI Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ SwiftUI Academy؟
لا تُشترط خبرة سابقة. SwiftUI Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «استدعاء APIs باستخدام URLSession»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس SwiftUI Academy هذا؟
نعم. كل درس في SwiftUI Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- فك ترميز JSON باستخدام Codable
- استدعاء APIs باستخدام URLSession
- معدّل .task
- حالات التحميل والخطأ