You can watch this episode by subscribing to Cocoacasts Plus.
Building a Modern Networking Layer in Swift
Working with Protected Resources
1 | Exploring the API 06:30 |
---|---|
2 | Fetching a List of Episodes 08:01 |
3 | Handling Errors 09:24 |
4 | Creating an API Client 09:27 |
5 | Making the API Client Extensible 08:04 |
6 | Authenticating the User 10:07 |
7 | Better Error Handling 08:16 |
8 | Working with Protected Resources 10:07 |
9 | Injecting the Access Token 09:55 |
10 | Hiding Implementation Details with Type Erasure 07:52 |
11 | Fetching Video Progress 09:49 |
12 | Creating and Updating Video Progress 06:40 |
13 | Deleting Video Progress 07:57 |
14 | Unit Testing the Networking Layer 10:32 |
15 | Unit Testing Asynchronous Code 07:45 |
16 | Stubbing the Cocoacasts API 08:42 |
17 | Writing Readable and Maintainable Unit Tests 09:29 |
18 | Enabling Code Coverage to Find Gaps 07:10 |
19 | Writing Unit Tests for Private Methods 08:33 |
20 | Writing the Wrong Unit Tests 11:55 |
21 | Writing Unit Tests for Edge Cases 08:25 |
22 | Catching Bugs with Unit Tests 11:05 |
23 | A Few More Unit Tests 11:04 |
In this and the next episodes, we add the ability for the user to watch an episode. For that to work, the application needs to fetch the video for the episode from the mock API. Fetching a video is similar to fetching the list of episodes. The difference is that the user needs to be signed in to fetch a video because a video is a protected resource. The request to the /videos/:id
endpoint needs to include an Authorization
header. The value of the Authorization
header is the access token the application receives after successfully signing in.
Instant and Unlimited Access
to 500+ Cocoacasts Tutorials
Monthly
$19 / month
Pay Once a Month
30 Day Money Back Guarantee
Yearly
$8.25 / month (billed annually)
Pay Once a Year and Save $129
30 Day Money Back
Guarantee