Chapter 4 - Common Adapter and Serializer Customizations
Changing the RESTful URL Path
Changing the URL for Certain Operations
Mapping Differently Named Payload Keys to Model Attributes
Mapping Foreign Keys to Relationships
Setting the Primary Key
Normalizing Responses
Normalizing Responses by Store Call
Normalizing Single Resource Objects
Chapter 5 - Writing an Adapter and Serializer from Scratch
Setup
Our Custom Adapter and Serializer
Finding All Records
Finding a Single Record
Revisiting normalizeResponse()
Creating Records
Updating a Record
Deleting a Record
Chapter 6 - Swapping the API with Local Storage
Implementing findAll()
Implementing findRecord()
Implementing createRecord()
Implementing updateRecord()
Implementing deleteRecord()
Chapter 7 - Nested Resource URL Paths and Relationship Links
How Relationship Links Work
When APIs Don’t Return Relationship Links
Chapter 8 - Working with Nested Data and Embedded Records
Declaring Attributes Without Transforms
Embedded Records
Chapter 9 - Handling Custom Error Responses
Validation Errors
Controlling the Invalid Status Code
Controlling Error Response Payloads
Other Error Types
Chapter 10 - Testing Adapters and Serializers
Testing Adapters
Testing Serializers
Chapter 11 - Common Customizations with JSON:API
Changing Attribute Casing
Overriding a Resource Object’s Type
Overriding HTTP Methods
Chapter 12 - Consuming the Reddit API
Setup
The Reddit APIs We Will Use
Fetching Posts in a Subreddit
Fetching a Subreddit’s Details
Chapter 13 - Polymorphic Relationships
Setup
What are Polymorphic Relationships?
How do Polymorphic Relationships Work?
Customizing Polymorphic Relationships
David Tang is a Software Engineer from Los Angeles with over 10 years of working experience in web development. His software career has led him to work with companies of all sizes and use many different technologies on both the back-end and front-end for building web applications. Ultimately he found his passion on the front-end in building applications with rich user experiences. He has worked with several JavaScript frameworks, but was drawn to Ember because of the community's values in convention over configuration, developer testing, and the commitment to providing an upgrade path for new major releases. He values the framework's opinionated way of working with APIs and managing data in a client-side JavaScript application with its companion library Ember Data. Since David was introduced to Ember, he has spent a lot of time blogging, teaching, and building applications with Ember and Ember Data. David is also an adjunct faculty member at the University of Southern California, teaching web development courses.
Learn how to work with Ember Data efficiently, from APIs, adapters, and serializers to polymorphic relationships, using your existing JavaScript and Ember knowledge. This book will teach you how to adapt Ember Data to fit your custom API.
Have a custom API that you aren't sure how to use with Ember Data? Interested in writing your own adapter or serializer? Want to just know more about how Ember Data works? This is the Ember Data book you have been waiting for.
Lots of books and tutorials start off teaching Ember with Ember Data. This is great, especially if you are in control of your API, but what if you aren't? You do a little research and start seeing terminology like adapters, serializers, transforms, and snapshots, and quickly become overwhelmed. Maybe you've thought to yourself that Ember isn't for you. Well, if this sounds familiar, then this book is for you.
You will:
Review the differences between normalization and serialization
Understand how the built-in adapters and serializers in Ember Data work
Customize adapters and serializers to consume any API and write them from scratch