콘텐츠로 이동

모델, enum, 속성

모델 은 API의 데이터를 기술합니다. 모델은 타입이 지정된 속성 을 가지며, 이 속성들은 다른 모델이나 enum 을 참조할 수 있습니다.

모델 섹션: 모델의 속성 목록이 타입, 플래그, 예시와 함께 표시된다

enum 은 닫힌 값의 집합입니다(예: 상태 draft / published / archived). 설계는 이를 두 가지 방식으로 다룹니다.

  • 이름 있는 enum — 재사용 가능하며 최상위(first-class) 요소입니다. Enum 섹션에서 enum 추가 를 사용해 이름과 설명을 붙인 다음, 각 항목마다 값 추가 를 사용합니다. 그 후 속성(또는 라우트 파라미터)이 타입으로 이를 참조합니다.
  • 인라인 enum — 하나의 속성에 직접 선언된 익명 집합입니다. string / integer / number 속성에서는 열거 값 칩 편집기를 통해, 이름 있는 타입을 만들지 않고도 허용되는 값을 바로 그 자리에서 나열할 수 있습니다.

인라인 enum이 공유할 만한 가치가 있을 때, 이름 있는 enum으로 추출 이 이를 승격합니다. 이는 이름 있는 enum을 만들고(중복을 피하기 위해 값이 동일한 기존 enum을 재사용) 속성이 그것을 참조하도록 다시 씁니다. 라우트 파라미터도 인라인 enum과 동일한 추출 동작을 가집니다 — 라우트 & CRUD 참조.

모델 섹션에서 모델을 선택하면 그 속성이 표(속성, 타입, 플래그, 예시)에 표시됩니다. 속성 추가 를 사용해 새로 만듭니다.

속성의 타입은 다음 중 하나일 수 있습니다.

  • 원시 타입: string, integer, number, boolean.
  • 다른 타입의 배열(array<…>) 또는 맵(map<…>).
  • 다른 모델에 대한 참조.
  • enum에 대한 참조.

string 의 경우 포맷 을 지정할 수 있습니다: email, uuid, date, date-time, uri, hostname, ipv4, password, byte.

타입 외에도 속성은 많은 필드를 받아들입니다: 설명, 예시, 기본값, 최소 / 최대, 최소 길이 / 최대 길이, 패턴(정규식), 폐기 메시지, 그리고 참조의 경우 On delete 동작.

플래그 는 속성을 규정하며 배지 형태로 표시됩니다: 필수, nullable, 고유, 불변, searchable(검색 가능 — 라우트 & CRUD 참조), 폐기됨, 읽기 전용, 쓰기 전용, PII(개인 데이터).

각 모델에는 고유한 설정 이 있습니다.

  • 식별자 — 식별 속성과 그 생성 전략(uuid, autoIncrement, ulid). 생성된 라우트의 {{id}} 파라미터에 연결되는 것이 바로 이 식별자입니다.
  • 상속 — 모델은 부모로부터 상속 할 수 있습니다. 자식은 자신의 속성에 더해 부모의 속성을 읽기 전용으로 표시합니다.
  • 스토리지 및 수명 주기 — 예상 볼륨, 타임스탬프(created / updated), 소프트 삭제(soft delete).

CRUD 생성 과 검색 라우트 생성 도 이 설정에서 실행합니다 — 다음 페이지에서 설명합니다.