Web API의 모델 유효성 검사

귀무 가설

API 소비자가 고객에 대한 업데이트를 시도 할 때 세 가지 사항을 확인해야합니다.

다음과 같은 경우 고객이 업데이트되지 않도록합니다.

  1. 이름 또는 성이 비어 있습니다.

  2. 특정 국가의 경우 고객의 내부 X 컬렉션이 비어 있으면 예외가 발생합니다. X는 설명하기 어렵 기 때문에 일부 컬렉션이라고 가정하면됩니다. 다른 모든 국가의 경우 X가 적용되지 않으며 항상 비어 있습니다. 하지만 특정 국가라면 X가 필요합니다. 따라서 거의 조건부 필수 속성입니다. 고객은 국가에 속하므로 전송되는 JSON에서 파악됩니다.

  3. 데이터베이스의 일부 조건이 참인 경우 고객이 업데이트되지 않도록합니다.

그래서 기본적으로 나는 다음과 같은 문제에 시달리고 있으며 그것을 해결하는 가장 적절한 방법에 대한 조언을 원했습니다.

저장하기 전에 고객 엔터티에 대한 유효성 검사를 수행하는 작업 필터를 만들어야합니까? 또는 ValidationAttribute에서 파생 된 사용자 지정 유효성 검사 특성을 만들고 IsValid 멤버 함수를 재정의하는 것이 더 낫습니다.

기본적으로 if (first name is empty, if x, if y, etc) vs (! ModelState.IsValid)

그런 다음 IsValid를 사용하여 사용자 지정 특성이 작동하도록합니다.

유효성 검사 속성은 "간단한"유효성 검사, 즉 필수 필드에 가장 적합한 것 같습니다. 그러나 "내 데이터베이스를 살펴 보거나 사용자 지정 값에 대한 http 요청 헤더를 분석해야합니다.이를 기반으로하여 invalid = false"와 같은 작업을 시작하면 이러한 종류의 작업을 거의 잘못된 것 같습니다. 엔티티.

생각?

감사!

볼칸 팍 소이

나는 FluentValidation을 많이 좋아합니다 : https://github.com/JeremySkinner/FluentValidation

언급했듯이 기본 제공 유효성 검사 속성은 제한됩니다. 복잡한 유효성 검사의 경우 자체 속성을 구현하거나 이와 같은 라이브러리를 사용하는 것이 좋습니다.

FluentValidation에 대해 제가 좋아하는 한 가지는 필드 수준이 아닌 모델 수준에서 수행된다는 것입니다. 즉, 관련 필드의 값을 유효성 검사에 사용할 수 있습니다. 예를 들면

RuleFor(customer => customer.Discount).NotEqual(0).When(customer => customer.HasDiscount);

(프로젝트의 Wiki 페이지에서 발췌 한 코드)

또한 확장 가능하므로이 라이브러리를 기반으로 사용자 지정 유효성 검사기를 개발할 수도 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Web API의 모델 상태 유효성 검사

분류에서Dev

모델의 Laravel 5 유효성 검사

분류에서Dev

ASP.NET Web API 2 컨트롤러의 모델 유효성 검사 및 다른 유효성 검사에서 다른 상태 코드 반환 실패

분류에서Dev

보기 모델의 하위 모델 유효성 검사

분류에서Dev

Web API 2.0-모델 유효성 검사 전에 Json Body를 미리 구문 분석 할 수 있습니까?

분류에서Dev

모델 Child, Ruby on Rails의 부모 유효성 검사 값

분류에서Dev

종속 속성이있는 asp.net 웹 API의 모델 유효성 검사

분류에서Dev

Ruby on Rails : 모델없이 문의 양식 유효성 검사

분류에서Dev

Ruby on Rails : 모델없이 문의 양식 유효성 검사

분류에서Dev

laravel은 여러 모델의 유효성을 검사합니다.

분류에서Dev

모델이 아닌 입력의 레일스 유효성 검사

분류에서Dev

미래 날짜 만-Rails 모델의 유효성 검사

분류에서Dev

cakephp 모델의 이메일 유효성 검사

분류에서Dev

하위 모델 Ruby on Rails의 오류 유효성 검사

분류에서Dev

active_record-acts_as-자식 모델의 부모 필드 유효성 검사

분류에서Dev

ASP NET Core 웹 API 사용자 지정 모델 유효성 검사

분류에서Dev

유효성 검사를 통해 동시에 두 개의 모델 생성

분류에서Dev

MVC 모델 유효성 검사 RegEx

분류에서Dev

Ruby on Rails-모델 유효성 검사

분류에서Dev

Sidekiq 및 Rails 모델 유효성 검사

분류에서Dev

CakePHP-다른 모델의 값을 사용하여 필드 유효성 검사

분류에서Dev

웹 API의 모델 상태에서 탐색 속성 유효성 검사를 제외하는 방법

분류에서Dev

모델의 조건부 대소 문자 구분 유효성 검사

분류에서Dev

조건 인 경우 필드의 레일스 모델 유효성 검사 값

분류에서Dev

Rails 모델의 Ruby에서 일부 텍스트 유효성 검사

분류에서Dev

yii 모델 유효성 검사의 규칙에 대한 정규식 표현식

분류에서Dev

Ext JS 5.0 프레임 워크의 모델 유효성 검사 오류

분류에서Dev

도메인 서비스의 도메인 모델에서 유효성 검사?

분류에서Dev

Rails : RSpec이 모델 하위 클래스의 유효성 검사에 실패 함

Related 관련 기사

  1. 1

    Web API의 모델 상태 유효성 검사

  2. 2

    모델의 Laravel 5 유효성 검사

  3. 3

    ASP.NET Web API 2 컨트롤러의 모델 유효성 검사 및 다른 유효성 검사에서 다른 상태 코드 반환 실패

  4. 4

    보기 모델의 하위 모델 유효성 검사

  5. 5

    Web API 2.0-모델 유효성 검사 전에 Json Body를 미리 구문 분석 할 수 있습니까?

  6. 6

    모델 Child, Ruby on Rails의 부모 유효성 검사 값

  7. 7

    종속 속성이있는 asp.net 웹 API의 모델 유효성 검사

  8. 8

    Ruby on Rails : 모델없이 문의 양식 유효성 검사

  9. 9

    Ruby on Rails : 모델없이 문의 양식 유효성 검사

  10. 10

    laravel은 여러 모델의 유효성을 검사합니다.

  11. 11

    모델이 아닌 입력의 레일스 유효성 검사

  12. 12

    미래 날짜 만-Rails 모델의 유효성 검사

  13. 13

    cakephp 모델의 이메일 유효성 검사

  14. 14

    하위 모델 Ruby on Rails의 오류 유효성 검사

  15. 15

    active_record-acts_as-자식 모델의 부모 필드 유효성 검사

  16. 16

    ASP NET Core 웹 API 사용자 지정 모델 유효성 검사

  17. 17

    유효성 검사를 통해 동시에 두 개의 모델 생성

  18. 18

    MVC 모델 유효성 검사 RegEx

  19. 19

    Ruby on Rails-모델 유효성 검사

  20. 20

    Sidekiq 및 Rails 모델 유효성 검사

  21. 21

    CakePHP-다른 모델의 값을 사용하여 필드 유효성 검사

  22. 22

    웹 API의 모델 상태에서 탐색 속성 유효성 검사를 제외하는 방법

  23. 23

    모델의 조건부 대소 문자 구분 유효성 검사

  24. 24

    조건 인 경우 필드의 레일스 모델 유효성 검사 값

  25. 25

    Rails 모델의 Ruby에서 일부 텍스트 유효성 검사

  26. 26

    yii 모델 유효성 검사의 규칙에 대한 정규식 표현식

  27. 27

    Ext JS 5.0 프레임 워크의 모델 유효성 검사 오류

  28. 28

    도메인 서비스의 도메인 모델에서 유효성 검사?

  29. 29

    Rails : RSpec이 모델 하위 클래스의 유효성 검사에 실패 함

뜨겁다태그

보관