nilportugues / php-json-api

JSON API transformer outputting valid (PSR-7) API Responses.
http://nilportugues.com
MIT License
71 stars 35 forks source link

Id Field Aliasing #99

Open samizdam opened 5 years ago

samizdam commented 5 years ago

I have domain model with uuid field and want use it as id value for API mapping.

I put uuid to getIdProperties, it is work fine for set id and links values in json. But I see uuid in attributes:

Failed asserting that '{"data":{"type":"some_model","id":"foo-bar","attributes":{"name":"foo","uuid":"foo-bar"},"links":{"self":{"href":"/api/v1/some-models/foo-bar"}}},"links":{"self":{"href":"/api/v1/some-models/foo-bar"}},"jsonapi":{"version":"1.0"}}' matches JSON string "{
    "data": {
        "type": "some_model",
        "id": "foo-bar",
        "attributes": {
            "name": "foo"
        },
        "links": {
            "self": {
                "href": "/api/v1/some-models/foo-bar"        
            }
        }
    },
    "links": {
        "self": {
            "href": "/api/v1/some-models/foo-bar"        
        }
    },
    "jsonapi": {
        "version": "1.0"
    }
}".
--- Expected
+++ Actual
@@ @@
         "type": "some_model",
         "id": "foo-bar",
         "attributes": {
-            "name": "foo"
+            "name": "foo",
+            "uuid": "foo-bar"
         },
         "links": {
             "self": {

I try hide this property and use aliases, but I could not succeed with my case. I create repo with example: https://github.com/samizdam/jsonapi-example/blob/master/tests/Samizdam/JsonApiExampleTest/ModelWithUuidMappingTest.php