98 lines
2.7 KiB
Markdown
98 lines
2.7 KiB
Markdown
# Matrix
|
|
|
|
Matrix Prototype in Go to test the energy efficiency
|
|
|
|
# API
|
|
|
|
## Begriffserklärung
|
|
|
|
Persisted Data Unit (PDU): Are transmitted between homerservers of one room. Part of the history (persisted). reply needed. (mostly events)
|
|
|
|
Ephemeral Data Unit (EDU): Are transmitted between 2 homeservers. Not part of the history (not persisted). No reply needed. (for example user presence, typing notification, etc.)
|
|
|
|
Transaction: Collection of up to 50 PDUs and 100 EDUs
|
|
|
|
Query: HTTP GET Request. Not persisted
|
|
|
|
## Client-Server
|
|
|
|
### Users
|
|
|
|
Check Username Availability: GET /_matrix/client/r0/register/available
|
|
|
|
Register: POST /_matrix/client/r0/register
|
|
|
|
Login: POST /_matrix/client/r0/login
|
|
|
|
Logout: POST /_matrix/client/r0/logout
|
|
|
|
Deactivate: POST /_matrix/client/r0/account/deactivate
|
|
|
|
Change Password: POST /_matrix/client/r0/account/password
|
|
|
|
Sync (After Login): GET /_matrix/client/r0/sync
|
|
|
|
### Rooms
|
|
|
|
Create Room: POST /_matrix/client/r0/createRoom
|
|
|
|
Get Room Members: GET /_matrix/client/r0/rooms/{roomId}/members /
|
|
GET /_matrix/client/r0/rooms/{roomId}/joined_members
|
|
|
|
Join Room: POST /_matrix/client/r0/rooms/{roomId}/join
|
|
|
|
Leave Room: POST /_matrix/client/r0/rooms/{roomId}/leave
|
|
|
|
### Events
|
|
|
|
Create Event: PUT /_matrix/client/r0/rooms/{roomId}/send/{eventType}/{txnId}
|
|
|
|
Create State Event: PUT /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}
|
|
|
|
Change Event: PUT /_matrix/client/r0/rooms/{roomId}/redact/{eventId}/{txnId}
|
|
|
|
Get Events: GET /_matrix/client/r0/rooms/{roomId}/messages
|
|
|
|
Get State Events: GET /_matrix/client/r0/rooms/{roomId}/state
|
|
|
|
Get Event: GET /_matrix/client/r0/rooms/{roomId}/event/{eventId}
|
|
|
|
Get State Event: GET /_matrix/client/r0/rooms/{roomId}/state/{eventType}/{stateKey}
|
|
|
|
## Server-Server
|
|
|
|
### General
|
|
|
|
Resolve Server Name: GET /.well-known/matrix/server
|
|
|
|
Get Server Implementation: GET /_matrix/federation/v1/version
|
|
|
|
### Keys
|
|
|
|
Get Signing Key: GET /_matrix/key/v2/server/{keyId}
|
|
|
|
Get Signing Key from another Server: GET /_matrix/key/v2/query/{serverName}/{keyId}
|
|
|
|
Get Signing Keys from multiple Servers: POST /_matrix/key/v2/query
|
|
|
|
### Rooms
|
|
|
|
Get Prep Information for Join: GET /_matrix/federation/v1/make_join/{roomId}/{userId}
|
|
|
|
Join Room: PUT /_matrix/federation/v2/send_join/{roomId}/{eventId}
|
|
|
|
Get Prep Information for Leave: GET /_matrix/federation/v1/make_leave/{roomId}/{userId}
|
|
|
|
Leave Room: PUT /_matrix/federation/v2/send_leave/{roomId}/{eventId}
|
|
|
|
### Events
|
|
|
|
Get State: GET /_matrix/federation/v1/state/{roomId} /
|
|
GET /_matrix/federation/v1/state_ids/{roomId}
|
|
|
|
Get Event: GET /_matrix/federation/v1/event/{eventId}
|
|
|
|
Sync Events (trough transactions with multiple events): PUT /_matrix/federation/v1/send/{txnId}
|
|
|
|
Backfill: GET /_matrix/federation/v1/backfill/{roomId} /
|
|
POST /_matrix/federation/v1/get_missing_events/{roomId}
|