이 페이지는 공개 계약에서 생성하며 설명은 원문(한국어) 그대로 표시합니다.
공유 가능한 System 계층과 명시적 구성.
System 목록#
GET /api/systems
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
handle | query | string | 아니요 | handle 정확 일치 필터. 앞뒤 공백 제거·소문자 정규화 후 비교하며 형식이 맞지 않으면 400 INVALID_REQUEST입니다. 기존 q·sort·page·per_page와 함께 사용할 수 있습니다. 결과는 최대 1건입니다. |
q | query | string | 아니요 | name에 대한 대소문자 구분 리터럴 부분 문자열 검색. 앞뒤 공백 제거 후 200 rune 이하·제어문자 금지. 생략·빈 값은 전체 목록. |
sort | query | string | 아니요 | name 오름차순·내림차순만 허용. 생략 시 기존 기본 순서(name 오름차순, ID 오름차순)를 유지합니다. 값: name, -name |
page | query | integer | 아니요 | 1 이상 정수. page·per_page 중 하나라도 있으면 페이지 모드로 동작합니다. 생략 시 1. |
per_page | query | integer | 아니요 | 1~500 정수. 생략 시 100. |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
배열(System[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | 예 | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
System 생성#
POST /api/systems
인증: 세션 쿠키 또는 Agent 토큰
요청 본문
application/json · 필수: 예
JSON 객체 하나, UTF-8·중복 키·미정의 필드 엄격 검사, 본문 최대 64 KiB. 일반 필드 검증은 조건 평가 전이며 참조 System 존재 검사는 조건 평가 뒤입니다.
타입: CreateSystem
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
handle | string | 예 | 필수. 앞뒤 공백 제거·소문자 정규화 후 3~39자의 영문 소문자·숫자·단일 하이픈만 허용하며 정규화한 값을 저장합니다. 같은 Organization의 같은 Catalog에서 이미 사용 중이면 409 HANDLE_CONFLICT, 형식 오류는 422 VALIDATION_FAILED(오류 field /handle, code invalid_format)입니다. |
name | string | 예 | 앞뒤 U+0020 공백 제거 후 1~200 유니코드 코드 포인트. 제어문자는 제거 전에 거부하며 범위는 U+0000~U+001F·U+007F~U+009F입니다. 다른 유니코드 공백·정규화는 적용하지 않습니다. 정규화 전 입력에는 maxLength 200을 적용하지 않습니다. |
summary | string | 아니요 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 아니요 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
응답
| 상태 | 설명 |
|---|---|
201 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
500 | INTERNAL_ERROR |
201 응답 본문
타입: System
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | 예 | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
System 상세#
GET /api/systems/{id}
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
If-None-Match | header | string | 아니요 | 상세 GET의 선택 조건. 강한·약한 태그, 태그 목록 또는 *를 허용하며 약한 비교로 일치하면 304, 불일치하면 200. *와 태그 혼합 또는 잘못된 형식은 400. 항목 미존재 404는 조건 평가에 우선합니다. |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
304 | If-None-Match 약한 비교 일치, 본문·Content-Type 없음 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
타입: System
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | 예 | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
System 전체 수정#
PUT /api/systems/{id}
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
If-Match | header | string | 예 | 대상 상세 GET의 단일 강한 ETag 필수. 관계 쓰기는 관계 ETag만 사용. 일반 검사 뒤 누락 428·불일치 412. *, 약한·복수 태그·잘못된 구문은 400. 미존재·삭제 참조 검사는 조건 평가보다 우선합니다. |
요청 본문
application/json · 필수: 예
JSON 객체 하나, UTF-8·중복 키·미정의 필드 엄격 검사, 본문 최대 64 KiB. 일반 필드 검증은 조건 평가 전이며 참조 System 존재 검사는 조건 평가 뒤입니다.
타입: ReplaceSystem
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
handle | string | 아니요 | 선택. 생략하면 저장된 값을 유지합니다. 앞뒤 공백 제거·소문자 정규화 후 3~39자의 영문 소문자·숫자·단일 하이픈만 허용하며 정규화한 값을 저장합니다. 같은 Organization의 같은 Catalog에서 이미 사용 중이면 409 HANDLE_CONFLICT, 형식 오류는 422 VALIDATION_FAILED(오류 field /handle, code invalid_format)입니다. |
name | string | 예 | 앞뒤 U+0020 공백 제거 후 1~200 유니코드 코드 포인트. 제어문자는 제거 전에 거부하며 범위는 U+0000~U+001F·U+007F~U+009F입니다. 다른 유니코드 공백·정규화는 적용하지 않습니다. 정규화 전 입력에는 maxLength 200을 적용하지 않습니다. |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
412 | PRECONDITION_FAILED |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
200 응답 본문
타입: System
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
handle | string | 예 | 같은 Organization의 같은 Catalog에서 고유한 Web 주소 이름. 3~39자의 영문 소문자·숫자·단일 하이픈이며 숫자로 시작할 수 있습니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
created_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
미연결 System 삭제#
DELETE /api/systems/{id}
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
If-Match | header | string | 예 | 대상 상세 GET의 단일 강한 ETag 필수. 관계 쓰기는 관계 ETag만 사용. 일반 검사 뒤 누락 428·불일치 412. *, 약한·복수 태그·잘못된 구문은 400. 미존재·삭제 참조 검사는 조건 평가보다 우선합니다. |
응답
| 상태 | 설명 |
|---|---|
204 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
412 | PRECONDITION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
System 연결 구성 자산 집합 조회#
GET /api/systems/{id}/component-links
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
If-None-Match | header | string | 아니요 | 상세 GET의 선택 조건. 강한·약한 태그, 태그 목록 또는 *를 허용하며 약한 비교로 일치하면 304, 불일치하면 200. *와 태그 혼합 또는 잘못된 형식은 400. 항목 미존재 404는 조건 평가에 우선합니다. |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
304 | If-None-Match 약한 비교 일치, 본문·Content-Type 없음 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
타입: SystemComponents
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
system_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
service_ids | string[] | 예 | |
api_ids | string[] | 예 | |
system_ids | string[] | 예 | |
database_ids | string[] | 예 | |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
System 연결 구성 자산 집합 전체 교체#
PUT /api/systems/{id}/component-links
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
If-Match | header | string | 예 | 대상 상세 GET의 단일 강한 ETag 필수. 관계 쓰기는 관계 ETag만 사용. 일반 검사 뒤 누락 428·불일치 412. *, 약한·복수 태그·잘못된 구문은 400. 미존재·삭제 참조 검사는 조건 평가보다 우선합니다. |
요청 본문
application/json · 필수: 예
JSON 객체 하나, UTF-8·중복 키·미정의 필드 엄격 검사, 본문 최대 64 KiB. 일반 필드 검증은 조건 평가 전이며 참조 구성 자산 존재 검사는 조건 평가 뒤입니다.
타입: ReplaceSystemComponents
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
service_ids | string[] | 예 | |
api_ids | string[] | 예 | |
system_ids | string[] | 예 | |
database_ids | string[] | 아니요 |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
412 | PRECONDITION_FAILED |
413 | PAYLOAD_TOO_LARGE |
415 | UNSUPPORTED_MEDIA_TYPE |
422 | VALIDATION_FAILED |
428 | PRECONDITION_REQUIRED |
500 | INTERNAL_ERROR |
200 응답 본문
타입: SystemComponents
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
system_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
service_ids | string[] | 예 | |
api_ids | string[] | 예 | |
system_ids | string[] | 예 | |
database_ids | string[] | 예 | |
updated_at | string(date-time) | 예 | 서버가 기록한 UTC RFC 3339 시각. 저장된 마이크로초 정밀도를 보존합니다. 동시성 토큰이나 항상 증가하는 버전 번호가 아닙니다. |
System 구성·상위 소속·포함 경로 조회#
GET /api/systems/{id}/components
현재 Organization의 부모 Service·연결·Repository Metadata를 같은 읽기 전용 Snapshot에서 조회합니다. 빈 집합은 빈 배열, 미존재·다른 Organization의 Service는 404입니다. ETag를 반환하거나 조건 헤더를 평가하지 않습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
q | query | string | 아니요 | name에 대한 대소문자 구분 리터럴 부분 문자열 검색. 앞뒤 공백 제거 후 200 rune 이하·제어문자 금지. 생략·빈 값은 전체 목록. |
sort | query | string | 아니요 | name 오름차순·내림차순만 허용. 생략 시 기존 기본 순서(name 오름차순, ID 오름차순)를 유지합니다. 값: name, -name |
page | query | integer | 아니요 | 1 이상 정수. page·per_page 중 하나라도 있으면 페이지 모드로 동작합니다. 생략 시 1. |
per_page | query | integer | 아니요 | 1~500 정수. 생략 시 100. |
scope | query | string | 아니요 | 값: direct, recursive |
kind | query | string | 아니요 | 값: system, api, service, database |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
배열(SystemComponent[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
kind | string | 예 | 값: system, api, service, database |
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
inclusion | string | 아니요 | 값: direct, indirect, both |
System 구성·상위 소속·포함 경로 조회#
GET /api/systems/{id}/parents
현재 Organization의 부모 Service·연결·Repository Metadata를 같은 읽기 전용 Snapshot에서 조회합니다. 빈 집합은 빈 배열, 미존재·다른 Organization의 Service는 404입니다. ETag를 반환하거나 조건 헤더를 평가하지 않습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
q | query | string | 아니요 | name에 대한 대소문자 구분 리터럴 부분 문자열 검색. 앞뒤 공백 제거 후 200 rune 이하·제어문자 금지. 생략·빈 값은 전체 목록. |
sort | query | string | 아니요 | name 오름차순·내림차순만 허용. 생략 시 기존 기본 순서(name 오름차순, ID 오름차순)를 유지합니다. 값: name, -name |
page | query | integer | 아니요 | 1 이상 정수. page·per_page 중 하나라도 있으면 페이지 모드로 동작합니다. 생략 시 1. |
per_page | query | integer | 아니요 | 1~500 정수. 생략 시 100. |
scope | query | string | 아니요 | 값: direct, recursive |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
배열(SystemComponent[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
kind | string | 예 | 값: system, api, service, database |
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
inclusion | string | 아니요 | 값: direct, indirect, both |
System 구성·상위 소속·포함 경로 조회#
GET /api/services/{id}/systems
현재 Organization의 부모 Service·연결·Repository Metadata를 같은 읽기 전용 Snapshot에서 조회합니다. 빈 집합은 빈 배열, 미존재·다른 Organization의 Service는 404입니다. ETag를 반환하거나 조건 헤더를 평가하지 않습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
q | query | string | 아니요 | name에 대한 대소문자 구분 리터럴 부분 문자열 검색. 앞뒤 공백 제거 후 200 rune 이하·제어문자 금지. 생략·빈 값은 전체 목록. |
sort | query | string | 아니요 | name 오름차순·내림차순만 허용. 생략 시 기존 기본 순서(name 오름차순, ID 오름차순)를 유지합니다. 값: name, -name |
page | query | integer | 아니요 | 1 이상 정수. page·per_page 중 하나라도 있으면 페이지 모드로 동작합니다. 생략 시 1. |
per_page | query | integer | 아니요 | 1~500 정수. 생략 시 100. |
scope | query | string | 아니요 | 값: direct, recursive |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
배열(SystemComponent[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
kind | string | 예 | 값: system, api, service, database |
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
inclusion | string | 아니요 | 값: direct, indirect, both |
System 구성·상위 소속·포함 경로 조회#
GET /api/apis/{id}/systems
현재 Organization의 부모 Service·연결·Repository Metadata를 같은 읽기 전용 Snapshot에서 조회합니다. 빈 집합은 빈 배열, 미존재·다른 Organization의 Service는 404입니다. ETag를 반환하거나 조건 헤더를 평가하지 않습니다.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
q | query | string | 아니요 | name에 대한 대소문자 구분 리터럴 부분 문자열 검색. 앞뒤 공백 제거 후 200 rune 이하·제어문자 금지. 생략·빈 값은 전체 목록. |
sort | query | string | 아니요 | name 오름차순·내림차순만 허용. 생략 시 기존 기본 순서(name 오름차순, ID 오름차순)를 유지합니다. 값: name, -name |
page | query | integer | 아니요 | 1 이상 정수. page·per_page 중 하나라도 있으면 페이지 모드로 동작합니다. 생략 시 1. |
per_page | query | integer | 아니요 | 1~500 정수. 생략 시 100. |
scope | query | string | 아니요 | 값: direct, recursive |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
배열(SystemComponent[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
kind | string | 예 | 값: system, api, service, database |
id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
name | string | 예 | |
summary | string | 예 | 목록·테이블에 한 줄로 표시하는 핵심 요약입니다. 최대 120 Unicode 코드 포인트이며 앞뒤 공백을 보존합니다. 줄바꿈·탭 등 제어 문자는 거부합니다. 빈 문자열은 요약 없음입니다. 상세 설명은 description에 기록합니다. |
description | string | 예 | 공백·개행을 보존하며 U+0000을 거부합니다. 빈 문자열로 설명을 비웁니다. null은 허용하지 않습니다. |
inclusion | string | 아니요 | 값: direct, indirect, both |
System 구성·상위 소속·포함 경로 조회#
GET /api/systems/{id}/composition
대상까지의 모든 포함 연결을 고정 순서로 반환. 두 번째 페이지부터 composition_revision 필수. 구조 변경은 409 SYSTEM_COMPOSITION_CHANGED.
인증: 세션 쿠키 또는 Agent 토큰
Parameter
| 이름 | 위치 | 타입 | 필수 | 설명 |
|---|---|---|---|---|
id | path | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
page | query | integer | 아니요 | 1 이상 정수. page·per_page 중 하나라도 있으면 페이지 모드로 동작합니다. 생략 시 1. |
per_page | query | integer | 아니요 | 1~500 정수. 생략 시 100. |
target_kind | query | string | 예 | 값: system, api, service, database |
target_id | query | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
composition_revision | query | integer | 아니요 |
응답
| 상태 | 설명 |
|---|---|
200 | 성공 |
400 | INVALID_REQUEST·INVALID_ID |
401 | UNAUTHENTICATED |
403 | FORBIDDEN_ORIGIN·ORGANIZATION_UNVERIFIED |
404 | SERVICE_NOT_FOUND·API_NOT_FOUND |
405 | METHOD_NOT_ALLOWED |
409 | ORGANIZATION_REQUIRED·SERVICE_NAME_CONFLICT·SERVICE_IN_USE·API_IN_USE·DATABASE_IN_USE·KEY_PATTERN_IN_USE·TABLE_IN_USE·COLLECTION_IN_USE·CASSANDRA_TABLE_IN_USE |
500 | INTERNAL_ERROR |
200 응답 본문
배열(SystemConnection[])이며 표는 항목의 필드입니다.
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
parent_id | string | 예 | Structly ID. Sonyflake로 발급한 정수를 고정 11자리 Base62(0-9A-Za-z)로 표현하며 대소문자를 구분합니다. |
component | SystemComponent | 예 |