-
Notifications
You must be signed in to change notification settings - Fork 1
스키마 네임스페이스 매핑하기
Soonho Kwon edited this page Feb 8, 2024
·
4 revisions
정의한 스키마를 클라이언트와 서버에서 사용하기 위해서는 스키마를 네임스페이스에 매핑해주어야 합니다.
각 스키마에 매핑된 고유한 key path 이름("admin.agenda.create"
등)이 서버와 클라이언트 전역에서 해당 스키마를 사용하기 위한 고유한 키 값 입니다.
import { mutation, subscription, namespace } from "@biseo/rpc/schema";
/* mutations */
const sendChatMutation = mutation(/* ... */);
const editChatMutation = mutation(/* ... */);
const createUserMutation = mutation(/* ... */);
const createAgendaMutation = mutation(/* ... */);
/* subscriptions */
const userSelfSubscription = subscription(/* ... */);
const chatListSubscription = subscription(/* ... */);
const agendasListSubscription = subscription(/* ... */);
const chat = namespace({
list: chatListSubscription,
send: sendChatMutation,
edit: editChatMutation,
});
const user = namespace({
me: userSelfSubscription,
create: createUser,
});
const agenda = namespace({
list: agendasListSubscription,
});
const admin = namespace({
agenda: namespace({
create: createAgenda
}),
});
export const mutations = namespace({
chat,
user,
agenda,
admin,
});
위와 같은 정의는 아래와 같은 네임스페이스로 매핑됩니다.
{
"chat.list": chatListSubscription,
"chat.send": sendChatMutation,
"chat.edit": editChatMutation,
"user.me": userSelfSubscription,
"user.create": createUserMutation,
"agenda.list": agendaListSubscription,
"admin.agenda.create": createAgendaMutation,
}
네임스페이스별로 모듈을 분리하여 관리를 용이하게 할 수 있습니다.
- Overview
- 컨셉
- Schema Usage
- Server Usage
mutation
핸들러 구현하기- [[
subscription
이벤트 브로드캐스트하기]] - 에러 핸들링
- Client Usage
- Guides & Concepts
-
schema
API -
client
API -
server
API