mirror of
https://github.com/1f349/dendrite.git
synced 2025-02-19 21:05:16 +00:00
Part of #3216 and #3226 There will be a follow up PR which is going to add the same admin endpoints Synapse has, so existing tools also work for Dendrite.
This component roughly corresponds to "Client Room Send" and "Client Sync" on the WIRING diagram. This component produces multiple binaries.
Internals
- HTTP routing is done using
gorilla/mux
and the routing paths are in therouting
package.
Writers
- Each HTTP "write operation" (
/createRoom
,/rooms/$room_id/send/$type
, etc) is contained entirely to a single file in thewriters
package. - This file contains the request and response
struct
definitions, as well as aValidate() 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.