У меня есть этот микросервисный проект, в котором я хочу попробовать подход, основанный на клиентской схеме. И потому что я ленивый, я хочу, чтобы был сгенерирован необходимый код.
Для внешнего интерфейса Angular я использую инструменты graphql-codegen
, а для внутреннего интерфейса я использую плагин graphql-codegen-maven-plugin
. И генерировать код, с которым я могу работать, и делать разработку, особенно синхронизацию фронтальной и бэкэнд-моделей, намного проще.
Поскольку я использую Docker, бэкэнд и фронтенд - это отдельные изображения, которые составлены с использованием docker-compose
. Но совместное использование схемы оказывается сложной задачей.
В настоящее время я просто символическую ссылку из схемы из внешнего интерфейса в бэкэнд. Это прекрасно работает, когда приложения запускаются из командной строки или IDE. Но это не будет работать при использовании команд Docker.
Я также думал об использовании подмодулей git, но поскольку я использую моно-репо, это было бы не очень полезно.
Я стараюсь не использовать скрипт для копирования файла схемы с клиента в каталог сервера, потому что я не хочу иметь это подразумеваемое знание, что вы можете редактировать файл схемы только внутри одногомодуль. Наличие символической ссылки вроде бы неплохо для этого.
Есть ли какой-нибудь полезный подход, который не идет с большим количеством компромиссов, лучшая практика, о которой я не знаю? Или я совершенно не прав с моим типом мышления, и генерация внешнего и внутреннего кода должна быть несколько иной?