You can watch this episode by subscribing to Cocoacasts Plus.
Building a Modern Networking Layer in Swift
Injecting the Access Token
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 the previous episode, we extended the API client with the ability to fetch the video for an episode. Because videos are protected resources, the request includes an Authorization
header with an access token as its value. The solution we implemented works, but it is tedious to pass the access token to the API client and the object invoking the video(id:accessToken:)
method shouldn't need to deal with access tokens. That is a responsibility of the API client.
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