Page MenuHomePhabricator

Raise warning when accidentally submitting Conduit parameters as a JSON-encoded body
ClosedPublic

Authored by amckinley on Jan 3 2019, 1:26 AM.
Tags
None
Referenced Files
F18818262: D19944.id47610.diff
Tue, Oct 21, 10:42 PM
F18752295: D19944.diff
Sat, Oct 4, 2:47 PM
F18745789: D19944.id.diff
Fri, Oct 3, 9:25 AM
F18645045: D19944.id47609.diff
Sep 19 2025, 6:51 AM
F18625086: D19944.id.diff
Sep 15 2025, 9:56 PM
F18612959: D19944.diff
Sep 14 2025, 10:24 AM
F18569052: D19944.id47610.diff
Sep 10 2025, 12:57 AM
F18566722: D19944.id.diff
Sep 9 2025, 2:51 PM
Subscribers

Details

Summary

See T12447 for discussion. It is reasonably intuitive to try and pass Conduit parameters via a JSON-encoded HTTP body, but if you do so, you'll get an unhelpful messsage about how method so-and-so does not accept a parameter named "your_entire_json_body". Instead, detect this mistake and advise developers to use form-encoded parameters.

Test Plan

Got a better error when attempting to make Conduit calls from React code. Tested the following additional invocations of Conduit and got the expected results without an error:

  • From the Conduit UI
  • With cURL:
~ $ curl http://local.phacility.com:8080/api/conpherence.querythread \
>     -d api.token=api-tvv2zb565zrtueab5ddprmpxvrwb \
>     -d ids[0]=1
  • With arc call-conduit:
~ $ echo '{
>   "ids": [
>     1
>   ]
> }' | arc call-conduit --conduit-uri http://local.phacility.com:8080/ --conduit-token api-tvv2zb565zrtueab5ddprmpxvrwb conpherence.querythread

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable