KinesteX

Error Handling

Handle API errors gracefully in your application.


Response Codes:

StatusDescription
200/201Request successful
400Validation error (check parameters)
401Unauthorized (invalid API key)
404Content not found
500Internal 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}