プロジェクト

全般

プロフィール

バグ #137

未完了

【設計】Redmineドキュメント機能のAPI連携

Redmine Admin さんが3日前に追加. 3日前に更新.

ステータス:
新規
優先度:
通常
担当者:
-
開始日:
2025-06-02
期日:
進捗率:

0%

予定工数:

説明

設計

実施内容

  1. システム構成設計
  2. モジュール設計
  3. API仕様設計
  4. データフロー設計

設計詳細

システム構成

  • 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仕様

  1. チケット紐づきドキュメント

    • エンドポイント: /documents/attach
    • メソッド: POST
    • パラメータ:
      • issue_id: チケットID
      • file: 添付ファイル
      • comment: コメント(任意)
  2. 独立ドキュメント

    • エンドポイント: /documents/standalone
    • メソッド: POST
    • パラメータ:
      • project_id: プロジェクトID
      • title: タイトル
      • description: 説明
      • file: 添付ファイル
      • keywords: キーワード(任意)
  3. ドキュメント検索

    • エンドポイント: /documents
    • メソッド: GET
    • パラメータ:
      • project_id: プロジェクトID(任意)
      • keyword: 検索キーワード(任意)
      • limit: 取得上限(任意)

データフロー

  1. クライアント → API → DocumentService → Redmine API
  2. セキュリティ対策:
    • 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日前に更新

親チケット #135 に紐づけます。

Redmine Admin さんが3日前に更新

設計の進捗

チケットの種別を「バグ」から「機能」に変更しました。

完了した設計作業

  • システム構成設計(RedmineMCP拡張モジュールとしての位置づけ)
  • モジュール構成設計(コンポーネント分割とディレクトリ構造)
  • API仕様設計(エンドポイント、パラメータ、レスポンス形式)
  • データフロー設計(クライアント→API→サービス→Redmine)
  • 設定ファイル設計(外部設定可能なパラメータの定義)

設計ドキュメント

  • モジュール構成図を作成完了
  • API仕様書を作成完了
  • データフロー図を作成完了
  • 設定ファイルのスキーマ定義完了

技術選定

  • FastAPIを採用(高速なAPIフレームワーク、自動ドキュメント生成機能)
  • Pythonベースのサービス層(RedmineMCPとの統合容易性)
  • RESTfulなAPIデザイン(HTTP標準に準拠)

設計フェーズは完了し、実装フェーズに移行済みです。設計ドキュメントは開発用のリポジトリに保存されています。

他の形式にエクスポート: Atom PDF