Обработка частных мутаций с федерацией Apollo
В архитектуре микросервисов у меня есть мутации GraphQL, которые, как считается, используются конечным пользователем, и некоторые другие, которые являются только внутренними.
Планирую переехать в Федерацию Аполлонов. Есть ли встроенный способ объявить мутацию неожиданной, чтобы она была недоступна для конечного пользователя, но могла быть вызвана внутренней службой напрямую?
Я не уверен, какой дизайн для этого лучше всего подходит; Я бы не хотел оказаться в ситуации, когда мне нужно запустить два разных сервера для микросервисов: общедоступный и частный.
1 ответ
Вкратце: нет, нет встроенного или обычного способа объявить части вашей схемы "частными". Вы можете придумать свой собственный@private
директива schema, которая может обернуть резолверы проверкой аутентификации, для которой требуется ключ API службы, а не токен доступа пользователя. Эти мутации по-прежнему будут видны в вашей схеме, то есть они, вероятно, появятся в любой автоматически созданной документации API, но они будут фактически непригодны для использования обычными пользователями. В этом выпуске Apollo Server разработчик Apollo упоминает планы по предоставлению встроенного@internal
для этой цели, но, похоже, она пока недоступна.