I've code like this
let scope = web::scope("/api")
.service(web::resource("/get/{path}/{id}").to(get_data))
and this
pub async fn get_data(
db: web::Data<libsql::Database>,
path: web::Path<(Option<String>, Option<String>)>,
) -> Result<HttpResponse, Error> {
//println!("AAAAA {:?}", &path);
let (mut linkpath, mut id) = (Option::None, Option::None);
match id {
Some(_) => (linkpath, id) = path.into_inner(),
_ => linkpath = path.into_inner().0,
} //let (path, id) = path.into_inner();
let conn = db.connect().expect(" Get Data DataBase Error .");
if &linkpath.is_some().to_string() == "/getnews" {
let mut query = conn.query("SELECT * FROM news", ()).await.unwrap();
let mut news_items: Vec<NewsItem> = Vec::new();
while let Some(row) = query.next().await.unwrap() {
let news_item = NewsItem {
id: row.get(0).unwrap(),
imgpath: row.get(1).unwrap(),
name: row.get(2).unwrap(),
description: row.get(3).unwrap(),
};
news_items.push(news_item);
}
return Ok(HttpResponse::Ok().json(news_items));
} // Code go on .....