Обработка частных мутаций с федерацией Apollo

В архитектуре микросервисов у меня есть мутации GraphQL, которые, как считается, используются конечным пользователем, и некоторые другие, которые являются только внутренними.

Планирую переехать в Федерацию Аполлонов. Есть ли встроенный способ объявить мутацию неожиданной, чтобы она была недоступна для конечного пользователя, но могла быть вызвана внутренней службой напрямую?

Я не уверен, какой дизайн для этого лучше всего подходит; Я бы не хотел оказаться в ситуации, когда мне нужно запустить два разных сервера для микросервисов: общедоступный и частный.

1 ответ

Решение

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

Другие вопросы по тегам