Switch to using stable identifiers (and add an unstable identifiers section).

kegan/spaces-summary
Patrick Cloke 5 years ago
parent 0fd8d8d6a6
commit dee9040eee

@ -33,13 +33,13 @@ to walk the full state of the space).
### Client-server API ### Client-server API
Walks the space tree, starting at the provided room ID ("the root room"), Walks the space tree, starting at the provided room ID ("the root room"),
and visiting other rooms/spaces found via `org.matrix.msc1772.space.child` and visiting other rooms/spaces found via `m.space.child`
events, recursing through those children into their children, etc. events, recursing through those children into their children, etc.
Example request: Example request:
```jsonc ```jsonc
POST /_matrix/client/unstable/org.matrix.msc2946/rooms/{roomID}/spaces POST /_matrix/client/r0/rooms/{roomID}/spaces
{ {
"max_rooms_per_space": 5, "max_rooms_per_space": 5,
@ -50,7 +50,7 @@ POST /_matrix/client/unstable/org.matrix.msc2946/rooms/{roomID}/spaces
or: or:
```text ```text
GET /_matrix/client/unstable/org.matrix.msc2946/rooms/{roomID}/spaces? GET /_matrix/client/r0/rooms/{roomID}/spaces?
max_rooms_per_space=5& max_rooms_per_space=5&
suggested_only=true suggested_only=true
``` ```
@ -69,13 +69,13 @@ Example response:
"topic": "Tasty tasty cheese", "topic": "Tasty tasty cheese",
"world_readable": true, "world_readable": true,
"room_type": "org.matrix.msc1772.space" "room_type": "m.space"
}, },
{ ... } { ... }
], ],
"events": [ "events": [
{ {
"type": "org.matrix.msc1772.space.child", "type": "m.space.child",
"state_key": "!efgh:example.com", "state_key": "!efgh:example.com",
"content": { "content": {
"via": ["example.com"], "via": ["example.com"],
@ -92,7 +92,7 @@ Example response:
Request params: Request params:
* **`suggested_only`**: Optional. If `true`, return only child events and rooms where the * **`suggested_only`**: Optional. If `true`, return only child events and rooms where the
`org.matrix.msc1772.space.child` event has `suggested: true`. Defaults to `m.space.child` event has `suggested: true`. Defaults to
`false`. (For the POST request, must be a boolean. For GET, must be either `false`. (For the POST request, must be a boolean. For GET, must be either
`true` or `false`, case sensitive.) `true` or `false`, case sensitive.)
* **`max_rooms_per_space`**: Optional: a client-defined limit to the maximum * **`max_rooms_per_space`**: Optional: a client-defined limit to the maximum
@ -108,7 +108,7 @@ Response fields:
`/publicRooms` (see `/publicRooms` (see
[spec](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-publicrooms)), [spec](https://matrix.org/docs/spec/client_server/r0.6.0#post-matrix-client-r0-publicrooms)),
with the addition of: with the addition of:
* **`room_type`**: the value of the `org.matrix.msc1772.type` field from the * **`room_type`**: the value of the `m.type` field from the
room's `m.room.create` event, if any. room's `m.room.create` event, if any.
* **`events`**: child events of the returned rooms. For each event, only the * **`events`**: child events of the returned rooms. For each event, only the
following fields are returned: `type`, `state_key`, `content`, `room_id`, following fields are returned: `type`, `state_key`, `content`, `room_id`,
@ -144,7 +144,7 @@ Much the same interface as the C-S API.
Example request: Example request:
```jsonc ```jsonc
POST /_matrix/federation/unstable/org.matrix.msc2946/spaces/{roomID} POST /_matrix/federation/v1/spaces/{roomID}
{ {
"exclude_rooms": ["!a:b", "!b:c"], "exclude_rooms": ["!a:b", "!b:c"],
"max_rooms_per_space": 5, "max_rooms_per_space": 5,
@ -183,6 +183,20 @@ This is largely the same as the C-S API, but differences are:
## Unstable prefix ## Unstable prefix
## TODO During development of this feature it will be available at an unstable endpoints.
The client-server API will be:
* Update this to use the stable identifiers from MSC1772 and MSC2946 everywhere. `/_matrix/client/unstable/org.matrix.msc2946/rooms/{roomID}/spaces`
And the server-server API will be:
`/_matrix/federation/unstable/org.matrix.msc2946/spaces/{roomID}`
Note that the unstable identifiers from [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) also apply:
Proposed final identifier | Purpose | Development identifier
------------------------------- | ------- | ----
`type` | property in `m.room.create` | `org.matrix.msc1772.type`
`m.space` | value of `type` in `m.room.create` | `org.matrix.msc1772.space`
`m.space.child` | event type | `org.matrix.msc1772.space.child`
`m.space.parent` | event type | `org.matrix.msc1772.space.parent`

Loading…
Cancel
Save