Мне было интересно узнать мнения и варианты упрощения и уменьшения дублирования определения схем при разработке с довольно популярным стеком:
- React Front End
- Использование TypeScript
- GraphQL
- RestAPI с проверкой AJV-схемы JSON
- Mongoose
- MongoDB с проверкой схемы JSON
Представьте, что у нас есть запись Person- интерфейс читает различные поля - например, first, last, middle, dob, ssn и т. д.
Теперь это будет определено в компоненте для воображаемого компонента Person React в TypeScript (интерфейс или запись).
Мы бы продолжали использовать Mutation в GQL - опять же, мы должны определить схему Person, используя язык схемы GQL. Это вызвало бы мой сервис RESTFul и POST тело.
Когда я пишу restful API, я склонен также проверять тело, используя AJV - так что я снова должен определить схему в схеме JSON.
Теперь я использую Mongoose, и вы определяете там схемы с помощью определения схемы Mongooses (я немного играю, потому что я предпочитаю использовать драйвер Mongo напрямую, но я хочу привести реальный пример, который я видел).
Наконец, вы можете опционально определить схему в БД Mongo. Надеюсь, мы могли бы использовать ту же схему JSON, что и для валидатора API, но, возможно, есть некоторые различия.
Все это кажется довольно тяжелым по определению - учитывая, что мы используем Javascript. Но проверка в каждой точке делает безопасным применение.
Что, по мнению людей, мы можем сделать, чтобы получить гораздо более чистое, возможно, единственное определение типа Person?