> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/gaido/developer-guide/schema-api.md).

# Workflows Schema API

Workflows Schema API は、開発者にワークフローの構造、入力、出力を明確にプログラムで理解できるようにします。これにより、ワークフローの入力要件と出力型をプログラムで判定するという課題に対処します。

## 目的と利点

このAPIは次の項目への構造化されたアクセスを提供します:

1. **入力パラメータ**: 必須のワークフロー入力。
2. **出力構造**: 返されるデータの詳細。
3. **型ヒント**: 入力と出力に期待されるデータ型。
4. **種類のスキーマ**: 複雑なデータ型の詳細なスキーマ。

これにより、開発者は次のことが可能になります:

* 入力をプログラムで検証する
* 出力データ構造を理解する
* ワークフローをより大きなシステムに統合する
* ワークフロー要件に基づいてドキュメントやUIを生成する

## APIの使用方法

[![Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/roboflow/inference/blob/main/docs/notebooks/workflow_schema_api.ipynb)

```python
import requests

WORKSPACE_NAME = "ワークスペース名"
WORKFLOW_ID = "ワークフローID"
INFERENCE_SERVER_URL = "https://serverless.roboflow.com"

WORKFLOW_SCHEMA_ENDPOINT = f"{INFERENCE_SERVER_URL}/{WORKSPACE_NAME}/workflows/{WORKFLOW_ID}/describe_interface"
ROBOFLOW_API_KEY = "あなたの Roboflow API キー"

headers = {
    "Content-Type": "application/json",
}

data = {
    "api_key": ROBOFLOW_API_KEY,
}

res = requests.post(WORKFLOW_SCHEMA_ENDPOINT, headers=headers, json=data)

schema = res.json()

inputs = schema["inputs"]
outputs = schema["outputs"]
kinds_schemas = schema["kinds_schemas"]
typing_hints = schema["typing_hints"]
```

## 入力と出力

この `inputs` と `outputs` keys は、ワークフローが実行時に期待し、返すすべての入力と出力を示します。

## 型ヒント

この `typing_hints` key は入力と出力のデータ型を示します。

## 種類のスキーマ

この `kinds_schemas` key は、返されるデータ型とその解析方法についてのより詳細な情報を含む OpenAPI 仕様を返します。たとえば、次の `object_detection_prediction` には、含まれるネストされたデータに関する情報が含まれています。
