My app has an API endpoint GET /sessions/{id}
which gets info about a session. This endpoint returns a lot of data, so we allow passing JSON in the request body to filter what fields etc. are requested. I know GET requests should not include request body, so I am trying to convert it to POST but not sure what to call the endpoint now:
POST /sessions/{id}
(but this looks like it's modifying the session, which it doesn't do)POST /session_info/{id}
(to make it clear that we are just querying info)POST /session/{id}/info
Example use:
GET /sessions/42
request body:
{'participants': ['jsmith', 'bjones'], 'participant_fields': ['dob', 'zip']}`
response:
{
'id': 42,
'date': '2022-08-29',
'room': 15,
'participants': [
{'id': 'jsmith', 'dob': '1985-01-06', 'zip': 04843},
...
],
...
}
(participants
and participant_fields
are optional; if omitted it will return all data about all participants.)
I know the filter params could be encoded as query string but I just think it's easier for my users to use JSON.
Any advice?