RESTful-Drupal / restful

RESTful best practices for Drupal
https://drupal.org/project/restful
418 stars 173 forks source link

Make sure the render cache is set on create/update. #1025

Open jsacksick opened 6 years ago

jsacksick commented 6 years ago

I realized the render cache was set only on view() (after doing a doGet on the Resource for instance).

I noticed that when creating/updating an entity (by calling doPost() & doPatch()) on the resource, no cache entry is created.

I spent quiet some time debugging the issue, and realized the check performed in isCacheEnabled() in the Formatter was returning FALSE, because of the $data->getContext().

On view(), CacheDecoratedResource is calling the view method on the CacheDecoratedDataProvider object.

While on create/update, we're not calling the methods on the CacheDecoratedDataProvider.

Additionally, we aren't calling setCacheFragments on the ResourceFieldCollection.

After the patch cache entry is created when I create an entity via the API, On update for some reasons, the cache entry seems to be created from time to time, unsure why...

e0ipso commented 6 years ago

It seems that tests are failing due to the Travis build. Can you please run the tests and report if they pass?