はじめに
2023年アドベントカレンダー20日目です。
昨日に引き続き、「ユーザーはトップページでブログタイトルの一覧を見ることができる」を進めていきます。
現在はRustのAPIを作成しており、本日はアーキテクチャを検討していきます
モジュラーモノリス
モジュラーモノリスとは、モノリシックな構造を持ちつつも内部でモジュールに分割されているのが特徴である、ソフトウェアアーキテクチャの一つです。
ソフトウェアアーキテクチャの一つで、簡潔にアプリケーションを表現することが可能です。
アプリケーションが大きくなる際は、マイクロサービスのようなアーキテクチャを採用すると良いと思いますが、今回のAPIではそれほど複雑になる予定は今のところないので、モジュラーモノリスを選択しました。
(作ってみたかった)
今回は図のようにブログモジュール
だけで良さそうなので、ブログモジュールを持ったAPIを作っていきます
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F2985550%2Fdfcab05e-8600-fbba-d69e-2101f138e7eb.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=de22e9f7c4caa8ef30b42c5f26b3f07d)
ディレクトリ構造
ブログモジュールを持つ、RustのAPIのディレクトリ構造を考えました。
.
├── Cargo.lock
├── Cargo.toml
├── blog ・・・・ブログモジュール
| ├── src/
| └── Cargo.toml
├── db ・・・・DB
├── e2e ・・・・E2Eテスト
├── src ・・・・メインモジュール
これをベースに作っていきます
クリーンアーキテクチャ
Webと同様にクリーンアーキテクチャの思想に基づいてアプリを構築していきます
クリーンアーキテクチャについては【Day 11】で解説しています。
アーキテクチャ図
このようになりました。
明日からはついにモジュラーモノリスで、クリーンアーキテクチャに基づいてアプリの実装を進めていきます!