# Takumi API

Takumi API は、Takumi のさまざまな機能を呼び出せる HTTP API です。
CI/CD パイプラインやチケット管理システムと連携させるなど、自社の開発ライフサイクルに自由に Takumi を組み込んでいただけます。

## Takumi API でできること

Takumi API は現在、以下の機能を提供しています。

| 機能                                                    | 備考                     |
| ------------------------------------------------------- | ------------------------ |
| [ホワイトボックス診断](/docs/ja/t/features/whitebox-assessment.md) | 「全体を診断」モードのみ |
| [ブラックボックス診断](/docs/ja/t/features/blackbox-assessment.md) | 「全体を診断」モードのみ |

:::note
現在はホワイトボックス・ブラックボックス診断の「全体を診断」モードにのみ対応しています。ホワイトボックス・ブラックボックス診断の「一部のみ診断」や[自動修正](/docs/ja/t/features/autofix.md)など、今後も順次機能を拡大予定です。
:::

Takumi API を用いて Takumi をお好みのタイミング・場所で呼び出し、その結果をお好みの場所へ届けることで、Takumi を開発ライフサイクルにシームレスに組み込んでいただけます。具体的には、**診断の定期実行**、**CI/CD パイプラインへの組み込み**、**診断結果を起点にした自動化**などが実現できます。一例として、以下のような活用が可能です。

- ステージング環境へのデプロイ後にブラックボックス診断を自動実行し、結果を Slack に投稿する
- BitBucket 上のコードベースに対して定期的にホワイトボックス診断を自動実行し、検出された脆弱性をそれぞれ Jira に起票する

## Web コンソールの「診断」との関係 {#relationship-with-existing-features}

Takumi API と Web コンソールの「診断」機能では**同じ診断エンジン**が使われますが、**診断データは共有されません**。

両者は共通の診断エンジンを利用しており、**精度やクレジット消費ロジックは同一**です。

Takumi API と Web コンソールの「診断」機能のデータは独立しています。API 経由で実行したワークフローの結果は Web コンソールの「診断」タブには表示されず、逆に Web コンソールで実行した診断の結果を API から取得することもできません。これは、両者が異なる設計思想に基づいているためです。

- **Web コンソールは診断の進行状況を容易に把握できるよう設計**しています。そのため、「クロール → 一部機能を選択して検査」といった一連の流れを「診断」という単位の**状態変化**として管理しています。
- **Takumi API はユースケースの自由度をなるべく高める API を指向**しています。そのためクロール・診断などをそれぞれ**独立したワークフロー**として提供しています。これにより、Web コンソールの「診断」機能の流れに制限されることなく、自由な流れ・組み合わせで Takumi の諸機能を呼び出していただけます。
