tiagopog/jsonapi-utils

Hide relationships links

oryansimplee opened this issue · 1 comments

Hi,
I would like to hide the relationship links from the response, while still displaying the included data of the related resources (using the include parameter).
Is that possible with the gem, or with some work-around?

Thank you!

Hey there, @oryansimplee!

You can achieve this by simply adding the fields query string parameter to your request's URL:

GET http://localhost:3000.com/users?fields[users]=first_name&fields[posts]=title&include=posts&page[number]=1&page[size]=1

HTTP/1.1 200 OK
{
    "data": [
        {
            "id": "1",
            "type": "users",
            "links": {
                "self": "http://localhost:3000/users/1"
            },
            "attributes": {
                "first_name": "Foobar 2"
            }
        }
    ],
    "included": [
        {
            "id": "8",
            "type": "posts",
            "links": {
                "self": "http://localhost:3000/posts/8"
            },
            "attributes": {
                "title": "Foobar"
            }
        },
        {
            "id": "9",
            "type": "posts",
            "links": {
                "self": "http://localhost:3000/posts/9"
            },
            "attributes": {
                "title": "Foobar"
            }
        }
    ],
    "meta": {
        "record_count": 15
    },
    "links": {
        "first": "http://localhost:3000/users?fields%5Bposts%5D=title&fields%5Busers%5D=first_name&include=posts&page%5Bnumber%5D=1&page%5Bsize%5D=1",
        "next": "http://localhost:3000/users?fields%5Bposts%5D=title&fields%5Busers%5D=first_name&include=posts&page%5Bnumber%5D=2&page%5Bsize%5D=1",
        "last": "http://localhost:3000/users?fields%5Bposts%5D=title&fields%5Busers%5D=first_name&include=posts&page%5Bnumber%5D=15&page%5Bsize%5D=1"
    }
}

As far as I know/remember that's the only way of doing such a thing right now. I hope this helps you.