В настоящее время у меня есть приложение GatsbyJS, которое использует Netlify CMS (NCMS) для управления контентом и Netlify через GitHub для хостинга / развертывания.
Я хотел бы создать очень простую систему форм заказов, но я хотел бы использовать файлы JSON и коллекции NCMS для представления данных, потому что у меня будут очень минимальные требования к данным, и я хотел бы иметь возможность полностью управлять данными через NCMS.
Например, у меня есть коллекция Products
и коллекция Orders
. Products
использует расширение JSON и содержит файлы JSON, которые представляют каждый продукт. Там все выглядит хорошо. Для Orders
я хочу иметь возможность создавать новые записи из NCMS ИЛИ из формы заказа в моем приложении.
Создание Orders
записей в NCMS должно быть достаточно простым с использованием виджета отношений, чтобы включить запись Products
в каждый заказ. Я пытаюсь понять, как я могу создавать файлы JSON в моей файловой системе (репо) после отправки формы. Я предполагаю, что это возможно каким-то образом с веб-зацепками GitHub, потому что NCMS делает это, когда вы создаете файлы в их системе.
Могу ли я, используя некоторую комбинацию API-форм Netlify, функций Netlify и / или веб-залов GitHub, создать файл в моем хранилище GitHub, когда пользователь отправляет форму Netlify в моем приложении?
Если это невозможно, моя стратегия последующих действий - сохранить данные Orders
в базе данных MongoDB. У меня пока нет опыта работы с Mongo, но я знаю, что он основан на «плоском» формате данных с использованием синтаксиса, подобного JSON. Могу ли я сохранить свои данные заказа в коллекции Mongo после отправки через функцию Netlify Lambda, затем запустить сборку через Netlify и в моем приложении получить данные Mongo во время сборки и каким-то образом создать файл для каждого объекта заказа, возможно, через API Гэтсби?
Моим последним средством было бы установить административную область моего приложения, где заказы можно было бы просматривать, изменять и удалять. Я бы предпочел избежать этого, потому что: а) у меня нет услуг Netlify Pro и, следовательно, у меня нет доступа к защищенному паролем доступу к сайту (хотя я не уверен, как NCMS использует Identity и может избежать премиум-плана?), и б) я бы хотел, чтобы все администрирование данных осуществлялось через одну и ту же платформу (Netlify CMS).
Извините за длинный вопрос, и я ценю совет.