Предложения по обработке нескольких схем одних и тех же данных в приложении - PullRequest
0 голосов
/ 24 октября 2019

Мне было интересно узнать мнения и варианты упрощения и уменьшения дублирования определения схем при разработке с довольно популярным стеком:

  • 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?

...