json-api icon indicating copy to clipboard operation
json-api copied to clipboard

Incorrect Handling of Nested Includes for Missing Relationships

Open cube-dainis opened this issue 10 months ago • 0 comments

Description:

According to the JSON:API documentation, when requesting a nested include such as destination.location for a stop resource, if the stop does not have a destination attached to it, the response should return destination=null instead of breaking with an error.

Steps to Reproduce:

  1. Create a resource location.
  2. Create a resource destination with nullable relationship location.
  3. Create a resource stop with nullable relationship destination.
  4. Request the stop resource with the include destination.location. (Ensure that the stop resource does not have a destination attached)

Expected Behavior:

The response should include:

"relationships": {
  "destination": {
    "data": null
  }
}

Actual Behavior:

The request fails with an error due to the missing destination resource ($this->resource):

ErrorException: Attempt to read property \"location\" on null

Linked Pull Request:

PR: https://github.com/timacdonald/json-api/pull/70

cube-dainis avatar Jan 13 '25 14:01 cube-dainis