27 lines
1.1 KiB
Rust
27 lines
1.1 KiB
Rust
//! 模型配置模块
|
|
|
|
pub mod types;
|
|
pub mod service;
|
|
pub mod handlers;
|
|
|
|
use axum::routing::{delete, get, post};
|
|
use crate::state::AppState;
|
|
|
|
/// 模型配置路由 (需要认证)
|
|
pub fn routes() -> axum::Router<AppState> {
|
|
axum::Router::new()
|
|
// Providers
|
|
.route("/api/v1/providers", get(handlers::list_providers).post(handlers::create_provider))
|
|
.route("/api/v1/providers/:id", get(handlers::get_provider).patch(handlers::update_provider).delete(handlers::delete_provider))
|
|
.route("/api/v1/providers/:id/models", get(handlers::list_provider_models))
|
|
// Models
|
|
.route("/api/v1/models", get(handlers::list_models).post(handlers::create_model))
|
|
.route("/api/v1/models/:id", get(handlers::get_model).patch(handlers::update_model).delete(handlers::delete_model))
|
|
// Account API Keys
|
|
.route("/api/v1/keys", get(handlers::list_api_keys).post(handlers::create_api_key))
|
|
.route("/api/v1/keys/:id", delete(handlers::revoke_api_key))
|
|
.route("/api/v1/keys/:id/rotate", post(handlers::rotate_api_key))
|
|
// Usage
|
|
.route("/api/v1/usage", get(handlers::get_usage))
|
|
}
|