# 画面設計書 3-APIドキュメント一覧

## 概要

libuvのAPIリファレンスページの目次ページ（api.rst）に関する画面設計書。全27件のAPIリファレンスサブページへのリンク集を提供するナビゲーションページである。

### 本画面の処理概要

本画面はlibuvの全APIリファレンスドキュメントへのアクセスを集約する目次ページとして機能する。開発者が必要なAPI情報に素早く到達できるよう、全APIカテゴリを一覧表示する。

**業務上の目的・背景**：libuvは多数のAPIを提供しており（エラーハンドリング、イベントループ、各種ハンドル、ファイルシステム、ネットワーク等）、これらを体系的に整理した目次ページが不可欠である。本画面により開発者は必要なAPIセクションを見つけ、詳細なリファレンスページへ効率的に遷移できる。

**画面へのアクセス方法**：トップページ（index.rst）のDocumentationセクションにある "API documentation" リンク押下、または `/api.html` に直接アクセスする。

**主要な操作・処理内容**：
1. APIカテゴリ一覧の閲覧 - 27件のAPIリファレンスページ名の確認
2. 各APIリファレンスページへの遷移 - toctreeリンクによる子ページアクセス

**画面遷移**：
- 遷移元：トップページ（index.rst）
- 遷移先：errors, version, loop, handle, request, timer, prepare, check, idle, async, poll, signal, process, stream, tcp, pipe, tty, udp, fs_event, fs_poll, fs, threadpool, dns, dll, threading, misc, metrics（全27ページ）

**権限による表示制御**：なし。公開ドキュメントであり全ユーザーが同一内容を閲覧可能。

## 関連機能

| 機能No | 機能名 | 関連種別 | 関連する操作・処理 |
|--------|--------|----------|------------------|
| 1 | イベントループ初期化 | 遷移先機能 | 各APIリファレンスページへのリンク一覧（イベントループ） |
| 39 | TCP初期化 | 遷移先機能 | 各APIリファレンスページへのリンク一覧（TCP） |
| 96 | ファイルオープン・クローズ | 遷移先機能 | 各APIリファレンスページへのリンク一覧（ファイルシステム） |

## 画面種別

目次・ナビゲーションページ（API一覧）

## URL/ルーティング

- ソースファイル: `docs/src/api.rst`
- 生成先URL: `/api.html`（例: `https://docs.libuv.org/en/v1.x/api.html`）
- Sphinxアンカー: `.. _api:` によるクロスリファレンスターゲット

## 入出力項目

| 項目名 | 入出力 | 型 | 説明 |
|--------|--------|-----|------|
| ページタイトル | 出力 | テキスト | "API documentation" |
| APIリファレンス一覧 | 出力 | リンクリスト | 全27件の子ページリンク |

## 表示項目

### toctree（APIリファレンス子ページ一覧）

| No | 表示項目 | 遷移先ファイル | 内容 |
|----|----------|--------------|------|
| 1 | Error handling | errors.rst | エラーコード定義 |
| 2 | Version-checking | version.rst | バージョン情報 |
| 3 | uv_loop_t | loop.rst | イベントループ |
| 4 | uv_handle_t | handle.rst | ハンドル基底 |
| 5 | uv_req_t | request.rst | リクエスト基底 |
| 6 | uv_timer_t | timer.rst | タイマー |
| 7 | uv_prepare_t | prepare.rst | Prepareハンドル |
| 8 | uv_check_t | check.rst | Checkハンドル |
| 9 | uv_idle_t | idle.rst | Idleハンドル |
| 10 | uv_async_t | async.rst | Asyncハンドル |
| 11 | uv_poll_t | poll.rst | Pollハンドル |
| 12 | uv_signal_t | signal.rst | シグナル |
| 13 | uv_process_t | process.rst | プロセス |
| 14 | uv_stream_t | stream.rst | ストリーム |
| 15 | uv_tcp_t | tcp.rst | TCP |
| 16 | uv_pipe_t | pipe.rst | パイプ |
| 17 | uv_tty_t | tty.rst | TTY |
| 18 | uv_udp_t | udp.rst | UDP |
| 19 | uv_fs_event_t | fs_event.rst | ファイルシステムイベント |
| 20 | uv_fs_poll_t | fs_poll.rst | ファイルシステムポーリング |
| 21 | uv_fs_t | fs.rst | ファイルシステム操作 |
| 22 | Thread pool | threadpool.rst | スレッドプール |
| 23 | DNS | dns.rst | DNS |
| 24 | uv_lib_t | dll.rst | 共有ライブラリ |
| 25 | Threading | threading.rst | スレッド |
| 26 | Miscellaneous | misc.rst | その他ユーティリティ |
| 27 | Metrics | metrics.rst | メトリクス |

## イベント仕様

### 1-APIリファレンスリンク押下

toctreeにより生成された各APIリファレンスリンクを押下すると、対応するAPIリファレンス詳細ページへ遷移する。

## データベース更新仕様

### 操作別データベース影響一覧

| 操作（イベント） | 対象テーブル | 操作種別 | 概要 |
|----------------|-------------|---------|------|
| N/A | N/A | N/A | データベースアクセスなし |

## メッセージ仕様

| メッセージID | 種別 | メッセージ内容 | 表示条件 |
|-------------|------|--------------|----------|
| N/A | N/A | N/A | 静的HTMLのため動的メッセージなし |

## 例外処理

- toctreeで参照される27ファイルのいずれかが欠損している場合、Sphinxビルド時にエラーとなる

## 備考

- toctreeの `:maxdepth: 1` 設定により、子ページのタイトルのみが表示される（子ページの孫ページは表示されない）
- api.rstは非常にシンプルな構造で、タイトルとtoctreeディレクティブのみで構成される

---

## コードリーディングガイド

本画面を理解するために参照すべきファイルと、推奨する読み解き順序を以下に示す。

### 推奨読解順序

#### Step 1: データ構造を理解する

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 1-1 | api.rst | `docs/src/api.rst` | toctreeディレクティブで定義された27件のサブページリスト |

**読解のコツ**: api.rstは最もシンプルなRSTファイルの一つ。toctreeディレクティブの記法（インデント付きのファイル名リスト）を理解すれば全容を把握できる。

#### Step 2: エントリーポイントを理解する

| 順序 | ファイル | パス | 読解ポイント |
|-----|---------|------|-------------|
| 2-1 | api.rst | `docs/src/api.rst` | 1行目の `.. _api:` ラベルと、6-36行目のtoctreeディレクティブ |

**主要処理フロー**:
1. **1行目**: `.. _api:` - クロスリファレンスターゲットラベル
2. **3-4行目**: "API documentation" タイトル
3. **6行目**: `.. toctree::` ディレクティブ開始
4. **7行目**: `:maxdepth: 1` - 表示深度設定
5. **9-35行目**: 27件のサブページファイル名リスト

### プログラム呼び出し階層図

```
Sphinx Build
    |
    +-- docs/src/api.rst (API目次ページ解析)
            |
            +-- toctree ディレクティブ解析
                    +-- errors.rst
                    +-- version.rst
                    +-- loop.rst
                    +-- handle.rst
                    +-- request.rst
                    +-- timer.rst
                    +-- prepare.rst
                    +-- check.rst / idle.rst / async.rst / poll.rst
                    +-- signal.rst / process.rst / stream.rst
                    +-- tcp.rst / pipe.rst / tty.rst / udp.rst
                    +-- fs_event.rst / fs_poll.rst / fs.rst
                    +-- threadpool.rst / dns.rst / dll.rst
                    +-- threading.rst / misc.rst / metrics.rst
```

### データフロー図

```
[入力]               [処理]                    [出力]

docs/src/api.rst --> Sphinx ビルドエンジン --> _build/html/api.html
                     (toctree展開)
```

### 関連ファイル一覧

| ファイル | パス | 種別 | 役割 |
|---------|------|------|------|
| api.rst | `docs/src/api.rst` | テンプレート | API目次ページのRSTソース |
| errors.rst | `docs/src/errors.rst` | テンプレート | 遷移先：エラーコード |
| version.rst | `docs/src/version.rst` | テンプレート | 遷移先：バージョン情報 |
| loop.rst | `docs/src/loop.rst` | テンプレート | 遷移先：イベントループ |
| handle.rst | `docs/src/handle.rst` | テンプレート | 遷移先：ハンドル基底 |
| request.rst | `docs/src/request.rst` | テンプレート | 遷移先：リクエスト基底 |
| timer.rst | `docs/src/timer.rst` | テンプレート | 遷移先：タイマー |
| prepare.rst | `docs/src/prepare.rst` | テンプレート | 遷移先：Prepareハンドル |
