From b9a45510753cefd6d93a4b4321ba6adb4d9932d2 Mon Sep 17 00:00:00 2001 From: Kegsay Date: Mon, 13 Mar 2017 15:56:26 +0000 Subject: [PATCH] Create README.md --- .../matrix-org/dendrite/clientapi/README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/github.com/matrix-org/dendrite/clientapi/README.md diff --git a/src/github.com/matrix-org/dendrite/clientapi/README.md b/src/github.com/matrix-org/dendrite/clientapi/README.md new file mode 100644 index 00000000..6d4a9dce --- /dev/null +++ b/src/github.com/matrix-org/dendrite/clientapi/README.md @@ -0,0 +1,11 @@ +This component roughly corresponds to "Client Room Send" and "Client Sync" on [the WIRING diagram](https://github.com/matrix-org/dendrite/blob/master/WIRING.md). +This component produces multiple binaries. + +## Internals + +- HTTP routing is done using `gorilla/mux` and the routing paths are in the `routing` package. + +### Writers +- Each HTTP "write operation" (`/createRoom`, `/rooms/$room_id/send/$type`, etc) is contained entirely to a single file in the `writers` package. +- This file contains the request and response `struct` definitions, as well as a `Validate() bool` function to validate incoming requests. +- The entry point for each write operation is a stand-alone function as this makes testing easier. All dependencies should be injected into this function, including server keys/name, etc.