표준이없는 것 같습니다.
StackOverflow 답변 은 410 GONE으로 기울어 지지만 301 MOVED PERMANENTLY가 더 적합하다고 생각합니다.
올바른 선택을하려면 특정 사례를 살펴 봐야합니다. 추가 조치를 취하지 않고 API v1에 대한 모든 호출이 실패하도록하는 것이 목표 인 경우 410 GONE이 작동합니다. 호출이 성공할 수있는 최신 버전의 API로 클라이언트를 리디렉션하는 등의 연속성을 원한다면 3XX가 작동하지만 어느 것을 선택합니까? API v1을 종료하려고하면 301 MOVED PERMANENTLY가 303 SEE OTHER가 302 SEE OTHER보다 낫다는 것을 나타내는 데 도움이된다고 생각합니다. 영구적 인.
각 버전이 이전 버전과 호환되는 방식으로 API를 엔지니어링하여 새 API 버전의 새 엔드 포인트를 추가 할 때마다 301 MOVED PERMANENTLY가 API를 투명하게 유지하고 최신 상태로 유지할 것을 권장합니다. 어쨌든 당신이하려는 일이라고 생각합니다.
HTTP 상태 코드
HTTP 상태 코드 302는 원래 너무 광범위하여 잘못 구현 / 사용되었으므로 303과 307은 302의 이중 사용 사례를 구분하기 위해 만들어졌습니다. 일부 API는 다른 용도로 303을 사용합니다.
301 영구적으로 이동 됨 -301 (영구적으로 이동 됨) 상태 코드는 대상 자원에 새로운 영구 URI가 지정되었으며이 자원에 대한 이후의 참조는 동봉 된 URI 중 하나를 사용해야 함을 나타냅니다.
302 FOUND -302 (발견 된) 상태 코드는 대상 자원이 일시적으로 다른 URI에 있음을 나타냅니다. 경우에 따라 리디렉션이 변경 될 수 있으므로 클라이언트는 향후 요청에 효과적인 요청 URI를 계속 사용해야합니다.
303 SEE OTHER -GET 요청에 대한 303 응답은 오리진 서버에 HTTP를 통해 서버가 전송할 수있는 대상 자원의 표현이 없음을 나타냅니다. 그러나 Location (위치) 필드 값은 대상 리소스를 설명하는 리소스를 나타내므로 해당 다른 리소스에 대한 검색 요청을하면 원래 대상 리소스를 나타내지 않고받는 사람에게 유용한 표현이 될 수 있습니다.
410 GONE -410 (Gone) 상태 코드는 대상 자원에 대한 액세스를 더 이상 원래 서버에서 사용할 수 없으며이 조건이 영구적 일 수 있음을 나타냅니다. 원래 서버가 조건이 영구적인지 여부를 알 수 없거나 결정할 기능이없는 경우 상태 코드 404 (찾을 수 없음)가 대신 사용되어야합니다.
기존 API는이를 어떻게 처리합니까?
어쩌면 Google의 Youtube API 에서 페이지를 가져올 수 있습니다 .
API 요청이 실패하면 YouTube는 일반적으로 실패를 식별하는 HTTP 4xx 또는 5xx 응답 코드와 실패를 일으킨 오류에 대한보다 구체적인 정보를 제공하는 XML 응답을 반환합니다. 각 오류에 대해 XML 응답에는 도메인 요소, 코드 요소 및 가능한 위치 요소가 포함됩니다.
더 읽을 거리 :