> 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/ko/developer-guide/developer-guide/schema-api.md).

# Workflows Schema API

Workflow의 입력, 출력, 타입 힌트, 종류 스키마를 프로그래밍 방식으로 설명합니다.

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 = "workspace-name"
WORKFLOW_ID = "workflow-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",
    "Authorization": f"Bearer {ROBOFLOW_API_KEY}",
}

res = requests.post(WORKFLOW_SCHEMA_ENDPOINT, headers=headers, json={})

schema = res.json()

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

## 입력 및 출력

해당 `입력` 및 `출력` 키는 워크플로우가 실행하고 반환하는 데 기대하는 모든 입력과 출력을 보여줍니다.

## 타이핑 힌트

해당 `typing_hints` 키는 입력 및 출력의 데이터 유형을 보여줍니다.

## 종류 스키마

해당 `kinds_schemas` 키는 반환되는 데이터 유형과 이를 파싱하는 방법에 대한 더 자세한 정보를 담은 OpenAPI 사양을 반환합니다. 예를 들어, 해당 `object_detection_prediction` 포함된 중첩 데이터에 대한 정보가 들어 있습니다.
