정수를 매개 변수로 사용하는 REST 끝 점이 있다고 가정 해보십시오.
/makeWaffles?numberOfWaffles=3
이 경우 음수의 와플을 만들 수 없으므로 숫자가 양수가되기를 원합니다 (0 와플을 요청하는 것은 시간 낭비입니다). 따라서 양의 정수를 포함하지 않는 요청을 거부하고 싶습니다. 또한 최대 정수를 초과하는 요청을 거부하고 싶습니다 (MAX_INTEGER라고 가정 해 봅시다).
누군가 양수가 아닌 와플을 요청하는 경우 HTTP 400 (잘못된 요청) 상태를 반환해야합니까? 내 초기 생각은 그렇습니다. 요청을 완료하는 데 유효한 숫자가 아닙니다. 그러나 RFC 는 비즈니스 규칙을 던지는 이유로 언급하지 않습니다.
400 (잘못된 요청) 상태 코드는 클라이언트 오류 (예 : 잘못된 요청 구문, 잘못된 요청 메시지 프레이밍 또는기만적인 요청 라우팅)로 인식되어 서버가 요청을 처리 할 수 없거나 처리하지 않음을 나타냅니다.
비즈니스 규칙은 이러한 세 가지 예에 해당되지 않습니다. 문법적으로 정확하고 제대로 구성되어 있으며기만적인 요청 라우팅이 아닙니다.
매개 변수가 구문 적으로 정확하지만 비즈니스 규칙을 위반하는 경우 HTTP 400 (잘못된 요청) 상태를 반환해야합니까? 아니면 더 적절한 상태로 돌아갈 수 있습니까?