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.
|
//! Endpoints that cannot change with new versions of the Matrix specification.
|
||||||
|
|
||||||
pub mod get_supported_versions;
|
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