Closed MichaelTsengLZ closed 4 years ago
Hello, and thank you for this!
Sorry to ask but what is the data you were expecting, or rather mainly how does the actual response differ from it?
@ignacionr The responses are different for
curl -L https://api.clearlydefined.io/definitions -H "accept: application/json" "Content-Type: application/json" -d "[\"npm/npmjs/-/redie/0.3.0\"]"
(correct)
and
curl -L http://api.clearlydefined.io/definitions -H "accept: application/json" "Content-Type: application/json" -d "[\"npm/npmjs/-/redie/0.3.0\"]"
(incorrect)
It could be related to CloudFlare redirect rules.
I see. It’s interesting. CloudFlare is only doing http, I assume? Not working as https termination right?
That is exactly what is happening; the thing is POST doesn't really make proper redirects. Jeff's original description of that POST endpoint is accurate, it "creates a resource" so what does it mean to create a resource through a redirect? (not very straightforward).
Further explanation of what is happening (and why we endup getting the GET resource) can be found here.
Closing this issue as the direct/practical solution is for API users to understand and cope with POST redirects (which are a special non-trivial case, around the defined HTTP behavior). Reopen if you want to suggest:
For example: Post http://api.clearlydefined.io/definitions Body: ["npm/npmjs/-/redie/0.1.0"]
Response Json: