На json-rpc одну апи лепить совсем больно. На GraphQL вроде должно быть проще, но тоже нюансы. Например если разнести на разные разные эндпоинты, то можно отдать вопрос авторизации фреймворку. Если же один, нужно будет при резолве полей проверять есть ли доступ. И если нет, кидать ошибку? В документации как это отразить, что один метод для разных пользователей даёт разные результаты