programing

REST API에 의해 JSON이 반환되는 경우 MIME 유형은 무엇입니까?

newnotes 2023. 3. 11. 09:28
반응형

REST API에 의해 JSON이 반환되는 경우 MIME 유형은 무엇입니까?

My REST API는 JSON을 반환합니다.

현재 MIME 타입으로 text/plain을 반송하고 있습니다만, 이상합니다.다시 올까요?application/x-javascript아니면 다른 타입인가요?

두 번째 질문은 오류 상태의 HTTP 상태 코드에 관한 것입니다.REST API가 오류 상태를 반환하는 경우 JSON으로 반환됩니다.

{ result: "fail", errorcode: 1024, errormesg: "That sucked. Try again!" }

HTTP 상태 코드 유지 여부:200 OK?

JSON 사양에 따르면application/jsonIETFIANA 레지스트리에서 지원되는 것 같습니다.

두 번째 질문에서는 어떤 방법으로든 메시지 처리가 실패했을 경우 구조화된 표준 오류 응답을 JSON 메시지로 반환해야 합니다.어떤 이유로 백엔드 핸들러에 메시지를 전달하지 못한 경우에만 HTTP 오류 코드를 고려해야 합니다.

업데이트 2014-06-27:클라이언트(브라우저)가 200개의 응답으로만 작업했던 시대는 오래 전에 지났습니다.RESTful API에 대한 일반적인 조언은 응답에 적합한 HTTP 응답 코드, 성공적인 응답에 대한 2xx(PUT에 대한 201 생성, 삭제에 대한 204 콘텐츠 없음) 및 API 자체에 대한 모든 오류 조건에 대한 4xx 및 5xx를 사용하는 것입니다.

JSON의 MIME 타입은

application/json

http://www.ietf.org/rfc/rfc4627.txt

http://www.iana.org/assignments/media-types/application/

자세한 내용은 이쪽:

http://www.ietf.org/rfc/rfc4627.txt

HTTP 오류 상태와 응용 프로그램 고유의 페이로드로 응답하는 것이 좋습니다.

아니요, 에러 상태로 200을 반환하면 안 됩니다.

상태 코드를 반복하거나 응답 페이로드에 더 자세한 오류 코드를 포함해도 됩니다.

적절한Content-type돌아오는 것은application/jsonRFC 4627에 따라 MIME 타입 IANA도 등록됩니다(실제로 IANA 페이지에 표시됩니다).물론, 만약 당신이 클라이언트를 쓴다면, 당신은 당신이 받아들이는 것에 있어서 좀 더 자유롭고 또한 다음과 같은 다른 것들을 받아들이고 싶을 것입니다.text/json그리고.text/x-json.

오류가 발생한 경우 HTTP 200을 반환하지 마십시오.이것은 기본적으로 RESTFUL이 아닙니다.오류에 대해 정확한 일치가 없는 경우가 있는 것은 알지만 RFC 2616 섹션 10.4-10.5에서 가장 가까운 4XX(클라이언트 오류) 또는 5XX(서버 오류) 오류를 선택하고 JSON에서 보다 정확하게 설명하십시오.

"REST API"가 REST 아키텍처를 따르는 경우 사용할 미디어 유형은 REST API를 통해 공개하려는 기능에 따라 결정됩니다.새 개체를 만들 수 있습니까?개체 목록을 쿼리하시겠습니까?개체를 편집하시겠습니까?이 경우 vnd.collection+json이 json 개체 모음을 조작하는 하이퍼텍스트 링크 인터페이스를 정의하므로 사용할 수 있는 RESTful 미디어 유형이 좋을 수 있습니다.

주의: RESTful API는 미디어 타입 어플리케이션/json을 사용할 수 있지만, 이 미디어 타입에는 하이퍼텍스트 링크 RESTful 인터페이스가 없기 때문에 상태 변경의 끝점이 됩니다.

또한 웹 API 아키텍처를 따르는 것도 완전히 허용됩니다.이 아키텍처에서는 HTTP RPC 콜은 응용 프로그램/json 객체를 반환하고 다른 HTTP RPC 콜은 이러한 객체를 조작하며 상태 변경을 사용하거나 탐색하기 위한 하이퍼텍스트링크 인터페이스가 없습니다.하지만 이건 REST가 아니야.

REST의 설명(REST의 작성자)은 다음과 같습니다.

REST APIS는 하이퍼텍스트 기반이어야 합니다.

즉, 애플리케이션 상태의 엔진(그리고 API)이 하이퍼텍스트에 의해 구동되지 않으면 RESTful이 될 수 없으며 REST API가 될 수 없습니다.마침표

또, 이 투고에서는, 다음의 RESTful 애플리케이션의 예를 나타냅니다.Lost Boys Spam-E REST 어플리케이션

언급URL : https://stackoverflow.com/questions/404470/what-mime-type-if-json-is-being-returned-by-a-rest-api

반응형