Document how to test the REST API with curl

Change-Id: Ia2d0d31c2028a35484eb954b5eee06606bba2632
This commit is contained in:
David Pursehouse 2013-05-07 16:41:48 +01:00
parent e4740ca6cf
commit 567e57b67d
2 changed files with 47 additions and 0 deletions

View File

@ -165,6 +165,51 @@ To use the GWT DETAILED style the package must be recompiled and
---- ----
[[test-rest-api]]
Testing the REST API
~~~~~~~~~~~~~~~~~~~~
Basic testing of REST API functionality can be done with `curl`:
----
curl http://localhost:8080/path/to/api/
----
By default, `curl` sends `GET` requests. To test APIs with `PUT` or `POST`,
an additional argument is required:
----
curl -X PUT http://localhost:8080/path/to/api/
curl -X POST http://localhost:8080/path/to/api/
----
Some REST APIs accept data in the request body of `PUT` and `POST` requests.
Test data can be included from a local file:
----
curl -X PUT -d@testdata.txt --header "Content-Type: application/json" http://localhost:8080/path/to/api/
----
To test APIs that require authentication, the username and password must be specified on
the command line:
----
curl --digest --user username:password http://localhost:8080/path/to/api
----
This makes it easy to switch users for testing of permissions.
It is also possible to test with a username and password from the `.netrc`
file (on Windows, `_netrc`):
----
curl --digest -n http://localhost:8080/a/path/to/api/
----
In both cases, the password should be the user's link:user-upload.html#http[HTTP password].
Release Builds Release Builds
-------------- --------------

View File

@ -5,6 +5,8 @@ Gerrit Code Review comes with a REST like API available over HTTP.
The API is suitable for automated tools to build upon, as well as The API is suitable for automated tools to build upon, as well as
supporting some ad-hoc scripting use cases. supporting some ad-hoc scripting use cases.
See also: link:dev-readme.html#test-rest-api[Developer setup: Testing the REST API].
Endpoints Endpoints
--------- ---------
link:rest-api-accounts.html[/accounts/]:: link:rest-api-accounts.html[/accounts/]::