#api-client #server-api #outline #vpn #open-api #client-server

outline_vpn_api

管理 Outline 服务器的 API。见 Github.com。

3 个稳定版本

1.0.2 2023 年 9 月 21 日

#8#outline

WTFPL 许可协议

66KB
985

Rust API 客户端用于 Outline VPN 服务器 API

管理 Outline 服务器的 API。见 getoutline.org

概览

此 API 客户端由 OpenAPI Generator 项目生成。通过使用来自远程服务器的 openapi-spec,您可以轻松生成 API 客户端。

  • API 版本:1.0
  • 包版本:1.0
  • 构建包:org.openapitools.codegen.languages.RustClientCodegen

安装

将以下内容添加到 Cargo.toml

[dependencies]
outline_vpn_api = "^1.0"

用法

use std::error::Error;
use outline_vpn_api::apis::{server_api::server_get,{configuration::{Configuration, ApiKey}}};

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    let client = reqwest::Client::builder()
        .danger_accept_invalid_certs(true)
        .build()?;
    let server_info = server_get(&Configuration {
        base_path: "https://1.1.1.1:1466/uGyfMASjkdyC2jJASDvBOg".to_string(),
        user_agent: None,
        client,
        basic_auth: None,
        oauth_access_token: None,
        bearer_access_token: None,
        api_key: Option::from(ApiKey { prefix: None, key: "10E13ED8351223B03DCB375F584D43A1232314F4473242EB4641111395E711".to_string() }) ,
    }).await?;

    println!("Server Name: {}", server_info.name.unwrap());
    println!("Server Id: {}", server_info.server_id.unwrap());
    println!("Server Port: {}", server_info.port_for_new_access_keys.unwrap());
    
    Ok(())
    
    
    // Server Name: vpn.example.com
    // Server Id: f2324846-c7d1-4515-bb6f-2sda191a44a6
    // Server Port: 9921
}

API 端点文档

所有 URI 都相对于 https://myserver/SecretPath

方法 HTTP 请求 描述
AccessKeyApi access_keys_get GET /access-keys
AccessKeyApi access_keys_id_data_limit_delete DELETE /access-keys/{id}/data-limit
AccessKeyApi access_keys_id_data_limit_put PUT /access-keys/{id}/data-limit
AccessKeyApi access_keys_id_delete DELETE /access-keys/{id}
AccessKeyApi access_keys_id_get GET /access-keys/{id}
AccessKeyApi access_keys_id_name_put PUT /access-keys/{id}/name
AccessKeyApi access_keys_post POST /access-keys
AccessKeyApi experimental_access_key_data_limit_delete DELETE /experimental/access-key-data-limit
AccessKeyApi experimental_access_key_data_limit_put PUT /experimental/access-key-data-limit
AccessKeyApi metrics_transfer_get GET /metrics/transfer
AccessKeyApi server_access_key_data_limit_delete DELETE /server/access-key-data-limit
AccessKeyApi server_access_key_data_limit_put PUT /server/access-key-data-limit
AccessKeyApi server_port_for_new_access_keys_put PUT /server/port-for-new-access-keys
LimitApi access_keys_id_data_limit_delete DELETE /access-keys/{id}/data-limit
LimitApi access_keys_id_data_limit_put PUT /access-keys/{id}/data-limit
LimitApi experimental_access_key_data_limit_delete DELETE /experimental/access-key-data-limit
LimitApi experimental_access_key_data_limit_put PUT /experimental/access-key-data-limit
LimitApi server_access_key_data_limit_delete DELETE /server/access-key-data-limit
LimitApi server_access_key_data_limit_put PUT /server/access-key-data-limit
ServerApi metrics_enabled_get GET /metrics/enabled
ServerApi metrics_enabled_put PUT /metrics/enabled
ServerApi name_put PUT /name
ServerApi server_get GET /server
ServerApi server_hostname_for_access_keys_put PUT /server/hostname-for-access-keys

模型文档说明

要获取生成的文档,请使用

cargo doc --open

作者

依赖

~4–16MB
~238K SLoC