29 个版本
0.1.28 | 2022 年 11 月 25 日 |
---|---|
0.1.27 | 2022 年 11 月 25 日 |
0.1.25 | 2022 年 10 月 6 日 |
0.1.24 | 2022 年 8 月 25 日 |
0.1.6 | 2022 年 5 月 31 日 |
#559 in HTTP 服务器
每月 27 次下载
32KB
756 行
dev_api
一组预配置的 Rust Web API 模块。目前处于早期开发阶段。
目的
我们希望开源我们在 Rust 中的后端开发方式,并提供一个快速简单的方式开始编写 Web API,而不会让您陷入另一个自定义框架。
示例
注意:由于此项目处于早期阶段,示例并不完整。您需要安装 actix-web 并创建自己的配置和依赖项,以便将其注入 app_data。
#[actix_web::main]
async fn main() -> std::io::Result<()> {
dev_api::tracing::init("my-service".to_string()).expect("Failed to initialize tracer.");
// All logs should be wrapped in a span. This is automatically done for each controller.
tracing::info_span!("main:server_starting").in_scope(|| {
tracing::info!("Starting server...");
});
let server = HttpServer::new(move || {
// The configure function must be a ServiceConfig factory function: https://docs.rs/actix-web/latest/actix_web/web/struct.ServiceConfig.html
let configs: Vec<fn(&mut web::ServiceConfig)> = vec![
users::configure,
products::configure
];
// dev_api will mount your services, configure the app, and send the app back so you can extend it further.
let app = dev_api::http::new(configs);
// Extend the app with your own dependencies.
app
.app_data(web::Data::new(jwt.clone()))
.app_data(web::Data::new(users_repo.clone()))
.app_data(web::Data::new(products_repo.clone()))
})
.bind(("0.0.0.0", 8080))?
.run();
tracing::info_span!("main:server_started").in_scope(|| {
tracing::info!("Server started!");
});
server.await
请查看源代码以获取更多信息。 src/http.rs
将显示我们如何设置服务器应用程序。
当它正常工作时,您可以通过在浏览器中访问 localhost:8080
来验证它。您应该在您的网络选项卡中收到一个空的 200 成功响应。
依赖项
~39–55MB
~1M SLoC