操作
バグ #137
未完了【設計】Redmineドキュメント機能のAPI連携
ステータス:
新規
優先度:
通常
担当者:
-
開始日:
2025-06-02
期日:
進捗率:
0%
予定工数:
説明
設計¶
実施内容¶
- システム構成設計
- モジュール設計
- API仕様設計
- データフロー設計
設計詳細¶
システム構成¶
- RedmineMCPの拡張モジュールとして実装
- FastAPIを利用したRESTful API
- Pythonベースのサービス層
モジュール構成¶
redmine-mcp/
├── document_api/
│ ├── __init__.py
│ ├── api.py # RESTful API実装
│ ├── document_service.py # ドキュメント操作のロジック
│ └── models.py # データモデル
├── config/
│ └── document_config.json # 設定ファイル
└── tests/
└── test_document_api.py # テスト
API仕様¶
-
チケット紐づきドキュメント
- エンドポイント:
/documents/attach
- メソッド: POST
- パラメータ:
- issue_id: チケットID
- file: 添付ファイル
- comment: コメント(任意)
- エンドポイント:
-
独立ドキュメント
- エンドポイント:
/documents/standalone
- メソッド: POST
- パラメータ:
- project_id: プロジェクトID
- title: タイトル
- description: 説明
- file: 添付ファイル
- keywords: キーワード(任意)
- エンドポイント:
-
ドキュメント検索
- エンドポイント:
/documents
- メソッド: GET
- パラメータ:
- project_id: プロジェクトID(任意)
- keyword: 検索キーワード(任意)
- limit: 取得上限(任意)
- エンドポイント:
データフロー¶
- クライアント → API → DocumentService → Redmine API
- セキュリティ対策:
- API認証
- CORS設定
- ファイルバリデーション
設定ファイル設計¶
{
"redmine": {
"base_url": "https://call2arm.com",
"api_key": "feb66d81a5f4ff9c585ce30fce2ac06e0554aec6"
},
"document_settings": {
"standalone_category_name": "ドキュメント",
"standalone_tracker_id": 1,
"use_wiki_for_standalone": false,
"wiki_parent_page": "Documents",
"allowed_extensions": ["pdf", "doc", "docx", "xls", "xlsx", "ppt", "pptx", "txt", "md", "png", "jpg", "jpeg"],
"max_file_size_mb": 10
}
}
Redmine Admin さんが3日前に更新
設計の進捗¶
チケットの種別を「バグ」から「機能」に変更しました。
完了した設計作業¶
- システム構成設計(RedmineMCP拡張モジュールとしての位置づけ)
- モジュール構成設計(コンポーネント分割とディレクトリ構造)
- API仕様設計(エンドポイント、パラメータ、レスポンス形式)
- データフロー設計(クライアント→API→サービス→Redmine)
- 設定ファイル設計(外部設定可能なパラメータの定義)
設計ドキュメント¶
- モジュール構成図を作成完了
- API仕様書を作成完了
- データフロー図を作成完了
- 設定ファイルのスキーマ定義完了
技術選定¶
- FastAPIを採用(高速なAPIフレームワーク、自動ドキュメント生成機能)
- Pythonベースのサービス層(RedmineMCPとの統合容易性)
- RESTfulなAPIデザイン(HTTP標準に準拠)
設計フェーズは完了し、実装フェーズに移行済みです。設計ドキュメントは開発用のリポジトリに保存されています。
操作