-
-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Content-type not set when function returning a domain representing media type is requested with Accept "*/*" header #3391
Comments
This needs the any handler as mentioned on #3387 (comment) |
Sorry, but that's still a bug. The function definition clearly tells us that this function is only ever going to return |
I agree that this is the ideal behavior and I gave it a shot on steve-chavez@760f5ac. Adding support for this is simple enough but it's hard to retrofit it with the current table media handlers done with aggregates, many tests break. Likely we will need to adjust aggregates behavior and cause breaking changes, so I will leave this for a next major version. |
I'm probably missing something, but shouldn't this just be solved on the haskell part of the code? We should have all information available already, no? I don't understand why we'd need to query more stuff from the SQL side for this. I would have expected we'd just need to adjust the logic where the actual negotiation happens. What am I missing? |
Yeah, maybe it can be done purely on the Plan side. I mostly was trying to keep that module simple (since it's already pretty complex) by adding extra info on the schema cache. |
@steve-chavez @laurenceisla I am still not sure what should be the correct Content-Type that should be returned here. I think the correct Mediatype would be HM.insert (RelAnyElement, MediaType.MTAny) (BuiltinOvAggJson, MediaType.MTApplicationJSON) -- SchemaCache.hs:1137: My question is, how are we gonna know that there is domain which is also a mediatype that we need to return? Sorry if that doesn't make any sense. |
Yes. Once we decide to call the function defined as |
Environment
Description of issue
I have the following function:
When requested by a browser from:
returned response Content-Type is
application/json
It seems the browser is setting Accept header to
*/*
and PostgREST does not set proper content type in this case.As a workaround it is necessary to explicitly set content type in the function using current_setting.
The text was updated successfully, but these errors were encountered: