# HTML生成シーケンス図
## 概要
FV(ファーストビュー)とコンテンツHTMLの生成フローを示すシーケンス図です。それぞれ独立したエンドポイントで、即座にHTMLを返します。
## FV HTML生成シーケンス
```mermaid
sequenceDiagram
participant Client as クライアント
participant API as /html-preview/generate-fv-html
participant UseCase as FVGenerationUseCase
participant Pipeline as SimplePipeline
Client->>API: POST /html-preview/generate-fv-html
{tabName, fvData, provider, screenshotUrl}
API->>API: fvDataからメインコピー抽出
API->>API: サブコピー抽出(最大3つ)
API->>UseCase: executeSimplePipeline({
screenshotUrl,
mainCopy,
subCopies,
fvData,
tabName,
provider
})
UseCase->>Pipeline: FV画像生成(AI使用)
alt 生成成功
Pipeline-->>UseCase: {html, css, imageUrl}
UseCase-->>API: 生成結果
API-->>Client: 200 OK
{html, css, imageUrl, pipelineType}
else 生成失敗
Pipeline-->>UseCase: エラー
UseCase-->>API: エラー情報
API-->>Client: 200 OK
{html: error_message, css: "", imageUrl: null}
end
Note over Client: FVを即座に表示
```
## コンテンツHTML生成シーケンス
```mermaid
sequenceDiagram
participant Client as クライアント
participant API as /html-preview/generate-contents-html
participant GenFunc as generateContentsHtmlWithImages
participant HTMLGen as HTMLGenerator
Client->>API: POST /html-preview/generate-contents-html
{tabName, cnData}
alt ダミーモード(?dummyMode=true)
API->>API: 事前生成HTMLを読み込み
API-->>Client: 200 OK
{html: dummy_html, css, message: "ダミーモード"}
else 通常モード
API->>GenFunc: generateContentsHtmlWithImages(tabName, cnData)
alt cnDataが存在する場合
GenFunc->>HTMLGen: new HTMLGenerator()
GenFunc->>HTMLGen: generateHTML(requestData)
Note over HTMLGen: テンプレートベースで
HTML生成(プレースホルダー
画像を自動埋め込み)
HTMLGen-->>GenFunc: 完全なHTML
GenFunc->>GenFunc: コンテンツセクション抽出
GenFunc->>GenFunc: 画像更新スクリプト追加
else cnDataが空の場合
GenFunc-->>GenFunc: デフォルトHTML返却
end
GenFunc-->>API: {html, css}
API-->>Client: 200 OK
{html, css, message}
end
Note over Client: プレビュー画面に
即座に表示
```
## 主要な特徴
1. **FVとコンテンツの分離**
- FV: `/html-preview/generate-fv-html` - AIを使った画像生成を含む
- コンテンツ: `/html-preview/generate-contents-html` - プレースホルダー画像付き
2. **ダミーモードのサポート**
- クエリパラメータ `?dummyMode=true` で事前生成HTMLを使用
- 開発時の高速テストが可能
3. **即座のレスポンス**
- プレースホルダー画像付きのHTMLを即座に返却
- ユーザーは待ち時間なくレイアウトを確認可能
4. **画像更新対応**
- 画像更新用のJavaScriptを自動付与
- 後から画像生成APIで生成された画像に置換可能
5. **エラーハンドリング**
- FV生成失敗時もエラーメッセージ付きHTMLを返却
- システムが完全に停止することを防ぐ