Error Handling
Handle API errors gracefully in your application.
Response Codes:
| Status | Description |
| 200/201 | Request successful |
| 400 | Validation error (check parameters) |
| 401 | Unauthorized (invalid API key) |
| 404 | Content not found |
| 500 | Internal server error |
Error Handling Patterns
1// Comprehensive error handling with Swift SDK
2Task {
3 let result = await kinestex.fetchWorkouts(category: "Fitness", limit: 10)
4
5 switch result {
6 case .success(let response):
7 // Handle successful response
8 let workouts = response.workouts
9 print("Success: Fetched \(workouts.count) workouts")
10
11 case .failure(let error):
12 // Handle different error types
13 if let urlError = error as? URLError {
14 switch urlError.code {
15 case .notConnectedToInternet:
16 print("No internet connection")
17 case .timedOut:
18 print("Request timed out")
19 default:
20 print("Network error: \(urlError.localizedDescription)")
21 }
22 } else {
23 print("Error: \(error.localizedDescription)")
24 }
25 }
26}
27
28// Using fetchContent for advanced error handling
29Task {
30 let result = await kinestex.fetchContent(
31 contentType: .workout,
32 id: "invalid_id"
33 )
34
35 switch result {
36 case .workout(let workout):
37 print("Found: \(workout.title)")
38
39 case .error(let message):
40 // API returned an error message
41 print("API Error: \(message)")
42
43 case .rawData(let data, let errorMessage):
44 // Parsing failed, but raw data is available
45 print("Parse error: \(errorMessage ?? "Unknown")")
46 print("Raw data: \(data)")
47
48 default:
49 print("Unexpected result type")
50 }
51}