Как отобразить абсолютно безопасные данные бэкэнда после запроса? - PullRequest
0 голосов
/ 23 октября 2019

Сначала я хочу сказать, что этот сценарий может быть и другим.

Сценарий: Бэкэнд-разработчик не ваш друг: D определяет DTO (отправляет JSON) с помощьюсвойства, например, в JAVA -> он не общается с вами -> конечно, не лучшая практика.

Распространенная проблема: Как разработчик веб-интерфейса с ANGULAR, я хочу быть в безопасности, когда я пытаюсь сопоставить данные бэкэнда с моей моделью внешнего интерфейса (получим JSON) -> потому что я ожидаю, что это точка, которую часто недооценивают.

Обычный случай Отображение объекта JSONвещи, которые подходят -> Вау, что за техника, но я не могу быть уверенным, что данные в другом месте моей программы не могут быть безопасными.

Вопрос Есть ли метод или шаблон, которыйЯ получаю сообщение об ошибке во время выполнения или во время компиляции во время процесса отображения ->, в котором я могу быть уверен, что модель определенно совпадает с тем же объектом (модель JSON), что и данные ответа?

1 Ответ

0 голосов
/ 23 октября 2019

С этой проблемой я тоже столкнулся, и из того, что я понял, пока нет стандартного шаблона, который бы решал это простым, чистым и элегантным способом.

Самым простым и грязным было бы проверитьчто входящий JSON имеет только те свойства, которые содержатся в ожидаемой модели, если найдено одно неожиданное свойство (поэтому оно не определено в экземпляре модели, а не равно нулю), может быть выдана ошибка. Этого можно добиться с помощью универсальной рекурсивной функции, которая учитывает вложенные структуры данных, итерируя по ключам объектов.

Другой, более элегантный, но более сложный метод, будет описан в этой статье: TypeScript JsonMapper , а также API-метаданные отражения-1008 * для работы в angular2 +

...