blob: 5a0944418106c7c97c3a7dbc0d10ec0b69b38347 [file] [view]
# Monorail API v2
This directory holds all the source for the Monorail API v2. This API is
implemented using `.proto` files to describe a `gRPC` interface (services,
methods, and request/response messages). It then uses a shim which
converts the
[`gRPC` server](http://www.grpc.io/docs/tutorials/basic/python.html)
(which doesn't work on AppEngine, due to lack of support for HTTP/2) into a
[`pRPC` server](https://godoc.org/github.com/luci/luci-go/grpc/prpc) which
supports communication over HTTP/1.1, as well as text and JSON IO.
## Regenerating Python from Protocol Buffers
In order to regenerate the python server and client stubs from the `.proto`
files, run this command:
```bash
$ make prpc_proto
```
## Manually Exercising the API
You can make anonymous requests to a server running locally like this:
```bash
$ ./api/test_call monorail.Users GetUser '{"email": "test@example.com"}'
```
Requests that require a signed-in user can be tested locally like this:
```bash
$ ./api/test_call monorail.Issues GetIssue \
'{"issue_ref": {"project_name": "rutabaga", "local_id": 1}}' \
--test-account=test@example.com
```