Skip to main content
appkiro.com

JSON 예제로 JSON Schema 생성

관찰한 payload에서 JSON Schema 초안을 만들고 validator 또는 API 도구가 지원하는 dialect를 선택하세요. 한 예제만으로 완전한 계약을 만들 수는 없습니다.

핵심 답변

JSON Schema는 JSON 문서가 허용하는 구조, 타입과 제약을 설명합니다. AppKiro는 예제에서 schema를 추론하고 여러 draft를 제공하지만 optional, union, format과 비즈니스 규칙은 직접 보완해야 합니다.

dialect를 선택해 기초 schema를 만들고 대상 validator로 검증하세요.

1

입력 JSON

예제 JSON을 불러왔습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2

출력 JSON Schema

1{2  "$schema": "http://json-schema.org/draft-07/schema#",3  "type": "object",4  "properties": {5    "user": {6      "type": "object",7      "properties": {8        "id": {9          "type": "integer",10          "examples": [11            112          ],13          "description": "Id field."14        },15        "name": {16          "type": "string",17          "examples": [18            "John"19          ],20          "description": "Name field."21        },22        "email": {23          "type": "string",24          "format": "email",25          "examples": [26            "[email protected]"27          ],28          "description": "Email field."29        },30        "isActive": {31          "type": "boolean",32          "examples": [33            true34          ],35          "description": "IsActive field."36        },37        "roles": {38          "type": "array",39          "items": {40            "anyOf": [41              {42                "type": "string",43                "examples": [44                  "admin"45                ]46              },47              {48                "type": "string",49                "examples": [50                  "editor"51                ]52              }53            ]54          },55          "examples": [56            [57              "admin",58              "editor"59            ]60          ],61          "description": "Roles field."62        },63        "profile": {64          "type": "object",65          "properties": {66            "age": {67              "type": "integer",68              "examples": [69                3070              ],71              "description": "Age field."72            },73            "address": {74              "type": "object",75              "properties": {76                "city": {77                  "type": "string",78                  "examples": [79                    "New York"80                  ],81                  "description": "City field."82                },83                "zip": {84                  "type": "string",85                  "examples": [86                    "10001"87                  ],88                  "description": "Zip field."89                }90              },91              "required": [92                "city",93                "zip"94              ],95              "description": "Address field."96            }97          },98          "required": [99            "age",100            "address"101          ],102          "description": "Profile field."103        },104        "lastLogin": {105          "type": "string",106          "format": "date-time",107          "examples": [108            "2024-03-18T10:24:00Z"109          ],110          "description": "LastLogin field."111        },112        "homepage": {113          "type": "string",114          "format": "uri",115          "examples": [116            "https://example.com"117          ],118          "description": "Homepage field."119        }120      },121      "required": [122        "id",123        "name",124        "email",125        "isActive",126        "roles",127        "profile",128        "lastLogin",129        "homepage"130      ],131      "description": "User field."132    }133  },134  "required": [135    "user"136  ]137}

사용 방법

  1. JSON을 붙여넣거나 업로드하고, 지원되는 공개 예제를 엽니다.
  2. Draft 4, 6, 7, 2019-09 또는 2020-12와 type mapping, required, description, examples, const, null, 순서를 설정합니다.
  3. 대상 validator에서 raw/tree 결과를 확인하고 실제 사례에 맞춰 수정합니다.

주요 기능과 설정

  • 현재 UI에서 Draft 4~2020-12 선택.
  • type mapping, description과 examples 설정.
  • required, const와 null 처리.
  • raw/tree 미리보기, 복사와 다운로드.

지원 입력과 출력

입력: JSON 텍스트 또는 파일, 지원되는 공개 URL. 출력: JSON Schema 텍스트 또는 파일.

활용 예

  • API payload용 schema 초안 작성.
  • 설정 파일이나 이벤트 구조 문서화.
  • validator 연동 전 dialect 비교.

어떤 작업 흐름을 선택해야 하나요?

JSON Schema 생성기: 현재 UI에서 Draft 4~2020-12 선택. Function Calling Schema 생성기: 현재 UI 대상: OpenAI, Claude, Gemini.

개인정보와 데이터 경로

현재 구현에서 붙여넣기/업로드 콘텐츠는 브라우저에서 처리되지만 “Extract from URL”은 서버 측 proxy로 원본을 가져옵니다.

제한과 문제 해결

  • OpenAPI 3.1은 JSON Schema Draft 2020-12 의미 체계를 사용하므로 대상 toolchain이 지원하는 dialect를 선택하세요.
  • 단일 예제는 optional property, 모든 union, format과 값 제약을 보여 주지 못합니다.
  • 현재 UI에는 5 MB 입력 제한이 표시됩니다.

FAQ

어떤 JSON Schema draft를 선택해야 하나요?

validator, OpenAPI 도구와 schema 소비자가 명시적으로 지원하는 dialect를 고르세요. 신규 독립 프로젝트에서는 2020-12를 우선 검토할 수 있지만 호환성 확인이 필요합니다.

데이터가 서버로 업로드되나요?

현재 구현에서 붙여넣기/업로드 콘텐츠는 브라우저에서 처리되지만 “Extract from URL”은 서버 측 proxy로 원본을 가져옵니다.

파일 또는 데이터 제한은 무엇인가요?

현재 UI에는 5 MB 입력 제한이 표시됩니다.

모바일에서도 사용할 수 있나요?

웹 기반 도구이므로 최신 모바일 브라우저에서 동작할 수 있지만 파일 선택, 메모리와 기기별 호환성은 모든 환경에서 검증되지 않았습니다. 크거나 복잡한 입력에는 데스크톱 브라우저를 권장합니다.

어떤 작업 흐름을 선택해야 하나요?

JSON Schema 생성기: 현재 UI에서 Draft 4~2020-12 선택. Function Calling Schema 생성기: 현재 UI 대상: OpenAI, Claude, Gemini.

관련 도구

dialect를 선택해 기초 schema를 만들고 대상 validator로 검증하세요.