I'm trying to get Ember Data's JSONAPIAdapter to work with nested resources. For the server part django-rest-framework-json-api is used.
My (simplified) ember models:
case.js
export default Model.extend({
firstName: attr('string'),
lastName: attr('string'),
comments: hasMany('comment'),
})
comment.js
export default Model.extend({
text: attr('string'),
case: belongsTo('case'),
})
The server's response for /api/v1/cases/4 looks like this:
{
"data": [
{
"type": "cases",
"id": "4",
"attributes": {
"first-name": "Hans",
"last-name": "Peter",
},
"relationships": {
"comments": {
"meta": {
"count": 1
},
"data": [
{
"type": "comments",
"id": "5"
}
],
"links": {
"related": "http://localhost:8000/api/v1/cases/4/comments"
}
}
}
}
]
}
Now, if i understand Ember Data and the JSON-API spec correctly, ember should request /api/v1/cases/4/comments when i reference the comments. Instead, it requests /api/v1/comments/5, which obviously returns a 404.
My questions in summary:
- Does the server response comply to the JSON-API spec?
- How do i get ember to respect the nested route?
I'm using ember v2.8.
Bonus question: I face the same problem for creating a new comment - how do i get ember to POST to /case/4/comments instead of /comments?
model.commentsin a template. According to the feedback from the ember community slack on this issue there are some subtleties related to how one accesses the resource - do you know more about this?