Slide 12
Slide 12 text
11
Rustバックエンド | 設計
async fn fetch_restaurants(
&self, database: &crate::Database, keys: &[RestaurantId],
) -> Result>> {
let query = format!(
// クエリ
);
// レコードフェッチ、DTOからクエリモデルへ
let restaurant_models = database
.query_as::(&query, params)
.await
.context("failed to query restaurants")?
.into_iter()
.map(|d| (d.id, Restaurant::try_from(d)))
.collect();
Ok(restaurant_models)
}
データアクセス層のコードのイメージ
データストアや設定は外から注入
上位層→モデルの依存方向で
モデルは外界に依存しない