#![feature(proc_macro_hygiene)] #![feature(decl_macro)] #[macro_use] extern crate rocket; use rocket_contrib::json::Json; #[macro_use] extern crate diesel; extern crate dotenv; mod controller; mod domain; mod dto; mod repository; mod schema; mod service; use controller::*; use dto::*; use repository::*; use service::*; #[post("/task/add", data = "<task>")] fn task_add(task: Json<TaskDto>) { TaskController::new(TaskService::new(TaskRepository::new())).task_add(task); } fn main() { rocket::ignite().mount("/", routes![task_add]).launch(); }
Controller mod.rs:
use crate::dto::*; use crate::service::*; use rocket_contrib::json::Json; pub struct TaskController { service: TaskService, } impl TaskController { pub fn new(service: TaskService) -> TaskController { TaskController { service: service } } pub fn task_add(&self, task: Json<TaskDto>) { println!("task json format is {:?}",task); self.service.task_add(task.into_inner()); } }
Service:
use crate::domain::*; use crate::dto::*; use crate::repository::*; use chrono::{Utc, Local, DateTime, Date}; pub struct TaskService { repository: TaskRepository, } impl TaskService { pub fn new(repository: TaskRepository) -> TaskService { TaskService { repository: repository, } } pub fn task_add(&self, task: TaskDto) { let task2 = Task::new(task.get_name(), task.get_time_limit()); println!("in service level is {:?}", task); // println!("in service level is {:?}",task2.ok()); let local_date: Date<Local> = Local::today(); let task_bak = Task { name: task.get_name().to_string(), time_limit: local_date }; self.repository.task_add(task_bak); } }
Repo:
use crate::domain::*; use crate::dto::*; use crate::schema::task_models::dsl::*; use diesel::pg::PgConnection; use diesel::prelude::*; use dotenv::dotenv; use std::env; pub struct TaskRepository { connection: PgConnection, } impl TaskRepository { pub fn new() -> TaskRepository { TaskRepository { connection: establish_connection(), } } pub fn task_add(&self, task: Task) { let _model = TaskModel::new(task); diesel::insert_into(task_models) .values(&_model) .execute(&self.connection) .expect("Error saving new task."); } } fn establish_connection() -> PgConnection { dotenv().ok(); let database_url = env::var("DATABASE_URL").expect("DATABASE_URL must be set"); PgConnection::establish(&database_url).expect(&format!("Error connecting to {}", database_url)) }
相关推荐
本文将深入探讨“Rust微服务开发”的主题,基于提供的资源,我们将介绍Rust语言的基础,微服务的概念,以及如何利用Rust构建微服务,同时还会讨论Rust中的常用库及其应用。 首先,让我们理解什么是Rust。Rust是一种...
Python-Fractalide是一个基于Rust语言构建的微服务架构框架,它提供了在Python环境中构建、部署和管理微服务的能力。Fractalide这个名字源自"fractal"(分形)的概念,暗示了其设计原则:模块化、自相似性和可扩展性...
Rust的微服务模板 Rust的OMS模板。 用法 # Storyscript your_service message name : ' Peter ' # {"message": "Hello Peter"} 测试 > oms run message -a name=Service :information: Building Docker image … :...
Rust是一种系统级编程语言,以其内存安全、并发性能和高速度而受到广泛赞誉。当我们将DDD与Rust结合时,我们可以构建出既符合业务需求又具有高性能的系统。 在"rust-ddd"项目中,我们可以看到如何在Rust环境中应用...
这两个微服务都使用完全异步的Rust库,并且都基于 。 特征 微服务使用grpc互相交谈 使用skaffold进行本地开发人员设置 CI 入门 该仓库需要 。 $ git clone https://github.com/caulagi/rust-k8s-demo # make ...
《Rust程序设计语言》是官方的Rust编程语言教程,旨在帮助读者理解和掌握Rust语言的核心特性和最佳实践。这本书由Steve Klabnik和Carol Nichols撰写,并由Rust社区不断更新和完善。简体中文版是由Rust中文社区翻译的...
Rust Rust Rust Rust Rust Rust
Rust 是一种系统编程语言,以其安全性、并发性和性能而闻名。它旨在提供内存安全,同时保持与 C 和 C++ 类似的性能。以下是一些 Rust 开发的入门步骤和简单例子。 环境搭建 安装 Rust:访问 Rust 官方网站 ...
Rust是一种注重安全、并发和性能的系统编程语言,它的设计目标是在保持底层系统编程能力的同时,提供高级语言的安全性和生产效率。Rust的内存安全保证,无需垃圾收集器,是其吸引开发者的重要特性之一。通过Rust,...
《Rust编程_rust中文手册_rust系统》是针对Rust编程语言的一份详尽教程,旨在帮助读者深入理解和掌握这门系统级编程语言。Rust由 Mozilla 研究院开发,以其强大的安全特性、高性能和并发能力而受到广泛关注。这份...
### Rust 程序设计语言知识点解析 #### 核心概念与价值定位 - **赋能(Empowerment)**:Rust 旨在为程序员提供更广泛领域的编程支持,特别是那些传统上被认为复杂且容易出错的领域,比如系统级编程。通过消除常见...
一个基于 tauri + rust + vue 构建的抢票软件,全部调用大麦的接口。目前只支持大麦平台(默认)。 ## 编译(需要 rust、node 环境): 1. 安装 rust `curl --proto '=...
"Rust 程序设计语言 简体中文版.pdf" 本书是 Rust 程序设计语言的简体中文译本,由 Rust 中文社区翻译。本书假设读者使用 Rust 1.62(2022-06-30 发布)或更新的版本。本书涵盖了 Rust 的基础知识,旨在帮助读者...
《Rust参考手册》中文版是一本详尽的官方文档,涵盖了Rust编程语言的核心概念、语法和特性。这本手册是由rust-lang-cn社区基于官方英文版翻译而来,并且持续更新,确保与官网同步,为中文用户提供了方便的学习资源。...
Rust 程序设计语言中文版 Rust是一种现代、安全、并发的系统级编程语言,旨在提供一种更好的方式来编写软件。 Rust的设计目标是提供一种既安全又高效的语言,能够满足系统级编程的需求。 语言特性 1. 安全性:...
Rust是一种注重性能和安全的编程语言,由Mozilla研究院研发,其目的是解决C和C++这类传统系统编程语言中内存管理的难题,比如空指针解引用、数据竞争和无效引用等问题。Rust的核心特性之一是它的所有权模型...
在本文中,我们将深入探讨如何使用Rust编程语言与Iron框架构建一个MVC(Model-View-Controller)应用程序。Rust是一种系统级编程语言,以其内存安全和高性能著称,而Iron则是用Rust构建Web应用程序的一个轻量级、可...
Rust编程语言这是Rust的主要源代码存储库。 它包含编译器,标准库和文档。 快速入门阅读本书中的“安装”。 从源代码安装注意:如果您希望对编译器有所帮助,则应阅读rustc-dev-guide的这一章而不是本节。 Rust构建...
rust博客系统,欢迎朋友们一起加入贡献!欢迎加qq群:945017397 运行后,打开http://0.0.0.0:8001/在您的web浏览器中。 Rust博客系统是一个使用Rust语言开发的博客平台,它提供了创建、管理和发布博客文章的功能...
在本文中,我们将深入探讨如何使用 Rust 语言进行 STM32F103 嵌入式开发。STM32F103 是意法半导体(STMicroelectronics)推出的一款基于 ARM Cortex-M3 内核的微控制器,广泛应用于各种嵌入式系统,如物联网设备、...