Add homeserver discovery endpoint.
This commit is contained in:
parent
8f1d4a4d21
commit
3037b105c7
@ -1,3 +1,4 @@
|
||||
//! Endpoints that cannot change with new versions of the Matrix specification.
|
||||
|
||||
pub mod get_supported_versions;
|
||||
pub mod discover_homeserver;
|
||||
|
42
src/unversioned/discover_homeserver.rs
Normal file
42
src/unversioned/discover_homeserver.rs
Normal file
@ -0,0 +1,42 @@
|
||||
//! [GET /.well-known/matrix/client](https://matrix.org/docs/spec/client_server/r0.4.0.html#get-well-known-matrix-client)
|
||||
|
||||
use ruma_api_macros::ruma_api;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use url::Url;
|
||||
|
||||
/// Information about a discovered homeserver.
|
||||
#[derive(Clone, Debug, Deserialize, Hash, PartialEq, PartialOrd, Serialize)]
|
||||
pub struct HomeserverInfo {
|
||||
/// The base URL for the homeserver for client-server connections.
|
||||
pub base_url: Url,
|
||||
}
|
||||
|
||||
/// Information about a discovered identity server.
|
||||
#[derive(Clone, Debug, Deserialize, Hash, PartialEq, PartialOrd, Serialize)]
|
||||
pub struct IdentityServerInfo {
|
||||
/// The base URL for the identity server for client-server connections.
|
||||
pub base_url: Url,
|
||||
}
|
||||
|
||||
ruma_api! {
|
||||
metadata {
|
||||
description: "Get the versions of the client-server API supported by this homeserver.",
|
||||
method: GET,
|
||||
name: "discover_homeserver",
|
||||
path: "/.well-known/matrix/client",
|
||||
rate_limited: false,
|
||||
requires_authentication: false,
|
||||
}
|
||||
|
||||
request {}
|
||||
|
||||
response {
|
||||
/// Information about the homeserver to connect to.
|
||||
#[serde(rename = "m.homeserver")]
|
||||
pub homeserver: HomeserverInfo,
|
||||
|
||||
/// Information about the identity server to connect to.
|
||||
#[serde(rename = "m.identity_server")]
|
||||
pub identity_server: Option<IdentityServerInfo>,
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user