Skip to content

스키마 정의하기

Soonho Kwon edited this page Jan 27, 2024 · 3 revisions

서버와 클라이언트 사이에 데이터를 교환하기 위해서 제일 먼저 진행해야 하는 작업은 먼저 인터페이스 스키마를 정의하는 것입니다.

mutationSchemasubscriptionSchema를 활용하여 스키마를 정의할 수 있으며, 스키마의 형태는 zod를 이용하여 정의합니다.

mutation 스키마 정의 예시

import { mutationSchema } from "@biseo/rpc/schema";
import { z } from "zod";

const createUser = mutationSchema(
  z.object({
    name: z.string(),
    age: z.number(),
  })
)
  .returns(z.object({
    userId: z.string().brand("user"),
  })
  .affects("users");

상세한 정의 방법과 규칙은 Mutations에서 확인할 수 있습니다.

subscription 스키마 정의 예시

import { subscriptionSchema } from "@biseo/rpc/schema";
import { z } from "zod";

const users = subscriptionSchema(
  z.object({
    id: z.string().brand("user"),
    name: z.string(),
    age: z.number(),
  })
).scope("admin");

상세한 정의 방법과 규칙은 Subscriptions에서 확인할 수 있습니다.

@biseo/rpc documentation


Clone this wiki locally