Угловая и серверная проверка
Существуют ли "лучшие практики" для интеграции реактивных форм Angular с проверкой на стороне сервера? Поиск, пока я нашел только
https://www.puzzle.ch/de/blog/articles/2017/01/18/server-side-validations-with-angular-2
РЕДАКТИРОВАТЬ
Не имея возможности ответить на этот вопрос, закрытый некоторыми чрезмерно усердными пользователями Stackru, я, тем не менее, предлагаю изучить код, сгенерированный JHipster (генератор кода CRUD для приложений Angular/Spring) для случая нового объекта со стороны клиента и сервера. Проверка.
1 ответ
Сначала я поясню, почему мы должны интегрировать проверку на стороне клиента и на стороне сервера по трем основным причинам:
- проверка на стороне клиента не требует асинхронного вызова для проверки информации. удобнее для пользователя.
- Проверка на стороне сервера является обязательством по соображениям безопасности.
- На стороне сервера можно добавить проверку бизнес-формы (Вы вводите нового пользователя, на сервере вы можете проверить, не был ли этот пользователь еще не занят).
Тогда о твоем вопросе. Включите сообщение об ошибке проверки на стороне сервера в вашей реактивной форме, что кажется отличной идеей (особенно по последней причине, указанной выше)
Для этого, согласно вашей ссылке, вы должны воспользоваться кодом состояния HTTP, который поможет вам классифицировать тип вашей ошибки. Тогда вы должны разработать общий ErrorResponseBag
, Например, (и это просто пример, который легко понять), API MangoPay имеет следующую схему для сообщения об ошибках:
{
"resultCode" : 1234,
"ResultMessage" : "some message",
"MoreInformation" : "Optional extra information"
}
ResultCode: число, ссылающееся на конкретную ошибку константного типа.
Тогда легко создать EasyErrorHandler
кто перехватывает каждого HttpErrorResponse
и поставить его на оповещение или что-нибудь еще.
Образец HttpInterceptor в StackBlitz
Примечание: если вам нужна дополнительная информация о файле HttpInterceptor, спросите меня