0

"car"엔티티를 작성하는 방법이 있고 "manufacturerID"가 필요하지만 제조업체가 존재하지 않는 방법의 일부인 경우, 어떤 상태 코드를 반환해야합니까?존재하지 않는 항목과 관련된 유효성 검증 오류의 Http 상태 코드

400 는 요청이 요청과 관련 뭔가이 존재하지 않는 것을 나타냅니다

또는 404 유효하지 않은 것을 나타 내기 위해?

엔드 포인트가 존재하지 않는다는 것을 암시 할 수 있기 때문에 404에 주저하고 있습니다. 사실이 아니기 때문에 존재하지 않는 매개 변수 중 하나입니다.

무엇이 존재하지 않는지에 대한 설명이 가장 적절할까요? 또는 더 모호한 400?

답변

0

400 존재하지 않는 제조물이있는 경우 요청이 잘못 되었기 때문에 400입니다.

+0

요청이 수행되었을 때 제조업체가 있었지만 서버가 확인했을 때까지 삭제 된 경우에도 마찬가지입니까? (아마이 시점에서 머리카락을 나눌 것 같은 시나리오 사이를 구별 할 수는 없을 것입니다.) – Steviebob

+0

형성중인 요청과 처리중인 요청 사이에 경쟁 조건이있는 경우에도 플래그가 지정되어야하는 오류가 발생합니다. 나는 서버가 처음부터 거기에 있었는지 여부를 알 수 없기 때문에 세계가 여전히 400이라고 말할 것입니다. – hardillb

-1

409 (https://greenbytes.de/tech/webdav/rfc7231.html#status.409) - 다른 리소스가 생성되면 요청이 유효하게됩니다.

+0

409는 편집 충돌을 의미합니다.이 경우 적용되지 않습니다. – hardillb

+0

"편집"이라는 용어가 나타나지 않습니다. 상태 코드 409의 정의. –

+0

감사합니다. w3.org (https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10)를 간략히 살펴본 후에이 라인이 특히 적합하다는 것을 알았습니다. "이 코드는 다음과 같은 상황에서만 허용됩니다. 사용자가 충돌을 해결하고 요청을 다시 제출할 수있을 것으로 예상됩니다. " 내 시나리오에서는 최종 사용자가 직접 웹 페이지에서 AJAX 요청 인 문제를 해결할 수 없으므로이 경우에는 409가 올바른 사용이 아닌 것으로 생각됩니다 (하지만 내가 노출 된 API가 더 많음). 이 점에 비추어 400이 제 경우에 더 적합 할 수 있다고 생각합니다. – Steviebob