doc(rpc): Request Types -> Request Methods & reword description

The POST description was ridiculously confusing. This cleans up the
doc a bit and is hopefully a bit more straight-forward.

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2022-02-10 00:16:32 -08:00
parent 3f95ac7db3
commit f928a49c8a
No known key found for this signature in database
GPG key ID: F7E46DED420788F3

View file

@ -28,21 +28,27 @@ Package information can be obtained by issuing HTTP GET requests of the form
+/rpc?v=5&type=info&arg[]=_pkg1_&arg[]=_pkg2_&...+ where _pkg1_, _pkg2_, ... +/rpc?v=5&type=info&arg[]=_pkg1_&arg[]=_pkg2_&...+ where _pkg1_, _pkg2_, ...
are the names of packages to retrieve package details for. are the names of packages to retrieve package details for.
Request Types Request Methods
------------- ---------------
The GET method here parses arguments in an odd way due to `v=5` historically Historically, the `type=multiinfo` `v=5` GET request has supported a
supporting this ordering. Later versions will remove support for this kind particular ordering of arguments. The POST request argument ordering
of parsing, and the POST method is our first step toward solving it. cannot be guaranteed, and so its behavior is different. Differences are
described below:
* `GET` `GET`::
- Search arguments are constructed using the last found argument(s). `type=multiinfo` arguments are parsed by iterating the query string
If the last related argument is `arg[]`, we collect arguments from from last to first key, looking for an `arg` or `arg[]`. Once one is
end to start until we hit a non-`arg[]` argument. If the last related found, behavior diverges depending on which is found first: the `arg`
argument is `arg`, it used as the one and only argument. parameter is used as the sole argument or the `arg[]` parameters are
* `POST` built into a list until a non-argument key is encountered.
- Search arguments are constructed using `[arg] + args` where `POST (experimental)`::
`args == arg[]`. All provided instances of `arg` and `arg[]` given to `type=multiinfo`
are supported in unison:
curl -d 'v=5' -d 'type=info' -d 'arg=one' -d 'arg[]=two' -d 'arg[]=three' ...
All other valid query types are supported without change.
Examples Examples
-------- --------