Sign in

    q2316367743/open-list/user does not have a README file

    AddSSHKeyRequest

    pub struct AddSSHKeyRequest {
    title : String
    key : String
    } derive(ToJson)

    新增 SSH 公钥的请求体(POST /api/me/sshkey/add)。

    AddSSHKeyRequest::to_json

    显式声明 derive 出来的 ToJson 实现以普通方法暴露。

    UpdateMeRequest

    pub struct UpdateMeRequest {
    username : String
    password : String?
    sso_id : String?
    } derive(ToJson)

    修改当前用户资料的请求体(POST /api/me/update)。

    服务端的实现是「拿到什么就覆盖什么」,只读三个字段: username(无条件覆盖,所以这里是必填的 String)、password (空串/不传表示不改密码)、sso_id(SSO 绑定标识)。

    UpdateMeRequest::new

    fn UpdateMeRequest::new(username : String, password? : String, sso_id? : String) -> UpdateMeRequest

    构造一份修改资料请求;只改密码时也建议带上当前用户名。

    UpdateMeRequest::to_json

    显式声明 derive 出来的 ToJson 实现以普通方法暴露。

    UserApi

    pub struct UserApi {
    // private fields
    }

    「当前登录用户」域:自己的资料与 SSH 公钥。

    这些端点都需要认证。用账号密码凭证时,第一个请求会自动触发登录; 游客(未登录且服务端允许游客访问)调 me() 会拿到游客用户的信息。

    UserApi::add_ssh_key

    async fn UserApi::add_ssh_key(self : UserApi, title : String, key : String) -> Unit raise
    OpenListError

    新增 SSH 公钥(POST /api/me/sshkey/add)。

    公钥格式非法时服务端返回 400;同一个公钥重复添加也会失败。

    UserApi::delete_ssh_key

    async fn UserApi::delete_ssh_key(self : UserApi, id : UInt) -> Unit raise
    OpenListError

    删除自己的 SSH 公钥(POST /api/me/sshkey/delete?id=)。

    id 来自 list_ssh_keys 的结果。

    UserApi::list_ssh_keys

    分页列出自己的 SSH 公钥(GET /api/me/sshkey/list?page=&per_page=)。

    服务端返回的是标准分页信封,所以这里直接给 PageResult。

    UserApi::me

    当前用户信息(GET /api/me)。

    返回的 user.password 一定是空串(服务端清掉了),user_response.otp 表示该账号是否开启了两步验证。

    UserApi::new

    由根包创建。

    UserApi::update

    修改当前用户资料(POST /api/me/update)。

    服务端会无条件用请求里的 username 覆盖原用户名,所以 UpdateMeRequest 的 username 是必填的;改密码不要求旧密码。

    Source Files