Это можно даже не для клиента делать, а для себя. Гораздо удобнее когда у тебя есть цельная схема, готовая валидация запросов и gql директивы, с которыми ты просто описываешь схему и у тебя всё работает. В случае когда у тебя есть готовая gql либа с плотной интеграцией тебе довольно часто даже хэндлеры писать не надо, достаточно добавить в схему что-нибудь вроде me: User @auth
или users: [User] @auth @roles('admin')