콘텐츠로 이동

라우트 & CRUD

라우트 는 API의 진입점입니다. 리소스별로 묶이며, 손으로 작성하거나 모델에서 생성 할 수 있습니다.

라우트 섹션: 모델에서 생성된 CRUD 라우트 그룹. 메서드, 경로, 응답이 표시된다

라우트는 메서드, 경로, 파라미터, 응답 을 가집니다. 경로는 Restorm의 {{param}} 구문을 사용합니다. 경로에 {{id}} 를 입력하는 즉시 해당 파라미터가 나타나고, 그것을 제거하면 사라집니다.

라우트의 정의 탭에는 그 파라미터가 나열됩니다 — 경로 파라미터({{param}} 플레이스홀더에서 생성됨)와 파라미터 추가 로 추가하는 쿼리 / 헤더 파라미터. 각각은 이름, 위치(in), 필수 여부, 설명, 그리고 선택적으로 예시 를 가집니다.

타입 셀은 콤보입니다. 원시 타입(string, integer, number, boolean)이나 설계의 이름 있는 enum 중 하나를 한 번의 클릭으로 선택합니다. 더 복잡한 경우에는 Advanced… 를 선택해 작은 대화 상자를 열 수 있으며, 거기서 다음을 할 수 있습니다.

  • 파라미터를 배열 로 만들고 그 요소 타입(array<string>, …)을 선택 — 다중 값 쿼리 파라미터.
  • 이름 있는 enum으로 타입이 지정되지 않았을 때 인라인 열거 값(허용되는 집합, 칩으로 표시)을 부여.
  • 이름 있는 enum으로 추출 — 이 인라인 값들을 공유 enum으로 승격(모델 & enum 참조).

파라미터는 또한 모델 속성에 연결(모델 링크 열)되어 그 타입을 상속하거나, 폐기됨 으로 표시될 수 있습니다. 각 파라미터 — 그 타입, enum, 폐기 여부 — 는 생성된 문서와 모든 프로토콜 프로젝션에 반영됩니다.

모델의 설정에서 CRUD 생성 은 모델의 복수형을 따라 이름 붙인 라우트 그룹을 한 번의 클릭으로 만들며, 여섯 개의 라우트를 포함합니다.

라우트메서드와 경로응답
목록GET /(페이지네이션)200
조회GET /{{id}}200 · 404
생성POST /201
교체PUT /{{id}}200 · 404
업데이트PATCH /{{id}}200 · 404
삭제DELETE /{{id}}204 · 404

목록은 페이지네이션 됩니다(오프셋 방식, 기본 20개, 최대 100개). 각 {{id}} 는 자동으로 모델의 식별자에 연결됩니다.

CRUD 생성 대화 상자에는 두 가지 옵션이 있습니다.

  • 기존 라우트 교체 — 다시 생성할 때 중복을 피하기 위해.
  • 쓰기 라우트를 인증으로 보호 — 생성, 교체, 업데이트, 삭제가 토큰(bearer)을 요구하게 되며, 읽기는 공개로 유지됩니다.

이 대화 상자는 CRUD가 각 프로토콜에서 제공 된다는 점도 알려줍니다: REST 라우트, GraphQL 쿼리와 뮤테이션, gRPC 메서드, OData 엔티티 세트, SOAP 오퍼레이션 (설계를 목으로 제공하기 참조).

searchable 로 표시된 각 속성에 대해, 검색 라우트 생성 은 모델의 목록 라우트에 연결된 쿼리 파라미터를 추가합니다(해당 라우트가 아직 없으면 만듭니다).

인증은 세 가지 수준에서 설정합니다: 설계의 기본값, 그룹별 인증 필수, 라우트별 오버라이드(그룹의 기본값을 상속). 사용 가능한 모드는 없음, Bearer(JWT), API 키(헤더), Basic 입니다.

태그 는 문서와 OpenAPI 내보내기를 위해 라우트를 묶습니다. 태그는 두 수준에 존재합니다. 라우트는 자신의 태그(그 정의 탭)를 가지며, 그룹은 그룹이 보유한 모든 라우트에 적용되는 공유 태그(그 설정)를 가집니다. 라우트의 실효 태그는 둘의 합집합 입니다 — 따라서 그룹 전체에 공통인 태그는 그룹에 한 번만 지정하는 것이 가장 좋습니다. 가져온 API를 설계로 전환할 때, 그룹의 모든 라우트가 공유하는 태그는 자동으로 그룹으로 올려집니다.

라우트는(속성이나 파라미터처럼) 그 설정 에서 폐기됨 으로 표시할 수 있습니다. 폐기된 라우트는 라우트 목록과 생성된 클라이언트에서 흐리게 표시되며, 그 탭에 폐기 알림을 표시합니다. 이 플래그는 모든 프로토콜 프로젝션으로 전파됩니다 — OpenAPI의 deprecated, GraphQL의 @deprecated 디렉티브, SOAP 및 gRPC 디스크립터, OData 메타데이터 — 그래서 제공되는 어떤 프로토콜의 소비자든 이를 볼 수 있습니다.