Add v2 path prefix. Add draft public room list API.

pull/977/head
Kegan Dougal 10 years ago
parent 2c18690766
commit 6ce518eb19

@ -47,6 +47,12 @@ protocol e.g. HTTP. The following APIs will remain unchanged from v1:
- Login API
- Content repository API
This version will change the path prefix for HTTP:
- Version 1: ``/_matrix/client/api/v1``
- Version 2: ``/_matrix/client/v2``
Note the lack of the ``api`` segment. This is for consistency between other
home server path prefixes.
Filter API ``[ONGOING]``
------------------------
@ -256,14 +262,48 @@ Outputs:
- Start / End pagination tokens
- Current room state at the end of the chunk as per initial sync.
Room Directory API ``[TODO]``
-----------------------------
Room Alias API ``[TODO]``
-------------------------
This provides mechanisms for creating and removing room aliases for a room on a
home server.
Public room list API ``[Draft]``
--------------------------------
This provides mechanisms for searching for public rooms on a home server.
Inputs:
- Search text (e.g. room alias/name/topic to search on)
- Home server to search on (this may just be the URL hit for HTTP)
- Any existing pagination token
- Limit for pagination
Output:
- Pagination token
- Total number of rooms
- Which 'page' of results this response represents
- A list of rooms with:
- # users
- A set of 'public' room state events, presumably ``m.room.name``,
``m.room.topic`` and ``m.room.aliases``. This cannot be user-configured
since the user is not in the room.
Notes:
- This API would be hit again for the next page of results, with the pagination
token provided from the previous hit.
- We should probably provide "and X more" estimates for the number of
pagination results. This can be calculated by providing the total number of
rooms e.g. '100' and the page e.g. '3' coupled with the limit parameter (aka
the number of results per page) specified e.g. '10'.
- In order to prevent the dataset from changing underneath the client whilst
they paginate, a request without a pagination token should take a "snapshot"
of the underlying data which is then paginated on, rather than the database
which is a moving target as other clients add new public rooms.
Public room list API ``[TODO]``
-------------------------------
User Profile API ``[TODO]``
---------------------------
Every user on a home server has a profile. This profile is effectively a
key-value store scoped to a user ID. It can include an ``avatar_url``,
``displayname`` and other metadata. Updates to a profile should propagate to
other interested users.
Action APIs
-----------

Loading…
Cancel
Save