mirror of
https://github.com/1f349/dendrite.git
synced 2025-02-22 14:25:08 +00:00
I fixed any dead links beginning https://matrix.org/speculator and some
issues I found along the way.
https://web.archive.org/web/20190329152312/https://matrix.org/speculator/spec/HEAD/client_server/unstable.html#user-interactive-authentication-api
is now found at
https://spec.matrix.org/v1.7/client-server-api/#user-interactive-authentication-api
https://web.archive.org/web/20170620093435/https://matrix.org/speculator/spec/HEAD/client_server/unstable.html#post-matrix-client-unstable-register
is now found at
https://spec.matrix.org/v1.7/client-server-api/#post_matrixclientv3register
2a8d64fef7/specification/intro.rst (L443)
is now found at
https://spec.matrix.org/v1.7/appendices/#user-identifiers
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.