2009-06-11 2 views
0

REST-ful 웹 서비스를 개발 중이며 HTTP PUT 방법에 대한 질문이 있습니다.HTTP PUT의 대체 본체

사람들이 애플리케이션/양식 데이터 요청 본문을 사용하여 콘텐츠를 제출할 수있게하려고합니다. 그러나 기본 응답은 application/xml에 있습니다.

이게 맞습니까?

에버트

답변

2

콘텐츠 유형은 단일 요청 범위 내에서만 중요합니다. 그들이하는 것은 전송되는 콘텐츠의 형식을 설명하는 것입니다.

웹 서비스는 제공 할 수있는 클라이언트 요청에 대해 가장 수용 가능한 응답을 제공해야합니다. 클라이언트 요청에는 허용되는 콘텐츠 형식을 설명하는 Accept 헤더가 포함되어야합니다. 서비스가이 헤더에있는 콘텐츠 유형을 제공 할 수없는 경우 클라이언트 GET 요청이 수락 헤더에 application/xml을 포함 할 경우 다음 다음에 관계없이 어떤 PUT의, application/xml로 응답 괜찮 상황에서 406 Not Acceptable

을 반환 요청한 자원에 대한 요청

참고 : 406 Not Acceptablestatus code definition는 다음과 메모 포함

: 편집

HTTP를/1.1 서버는 발송 된 Accept 헤더에 의해서 접수 이없는 응답을 리턴 할 수있게된다 요청 경우에 따라 406 응답을 보내는 것이 더 나을 수도 있습니다. 사용자 에이전트는 의 헤더를 검사하여 수신이 가능한지 판단해야합니다.

언제든지 application/xml을 반환 할 수 있습니다. 예

0
어떤 범위 지정 정보가 URI에 포함되어 있는지 확인하고 HTTP 메시지 봉투 않도록 올바른 HTTP 방법을 사용 (HEAD를 GET, PUT, DELETE 또는 POST) 작업을 위해해야 ​​

의 RESTful 서비스 즉 SOAP과 같은 다른 엔벨로프를 포함하지 마십시오.

Roy Fieldings 2000 Ph.D. dissertation: Architectural Styles and the Design of Network-Based Software Architectures은 REST의 기초를 형성합니다.

+0

흥미로운 기사,하지만 내 질문에 대답하지 않습니다 .. : 나는에 새로운 기사를 PUT 는/기사 firstpost, 나도 응용 프로그램/XML 또는 응용 프로그램의 내용 유형을 사용하는 옵션을 얻을// form-data. 나는 나중에 선택한다. 그럼 기사에서 GET을하고 application/xml 표현을 받는다. 괜찮습니까? – Evert

+0

미안하지만 여전히 REST 자신에 대한 새로운 것이지만 실제로는 클라이언트가 XML을 사용하는 방식에 따라 다릅니다. 메시지 엔티티는 클라이언트에 가장 적합한 데이터 형식이어야하며 클라이언트와 서비스를 함께 연결하기 때문에 문제에 대한 특정 구문 분석이 필요하지 않습니다. 여기에 대해 더 자세히 설명하는 게시물이 있습니다. http://www.peej.co.uk/articles/rest-data-formats.html. application/xml이 REST 원칙을 따르지 않을 수 있다고 생각한 이유는 무엇입니까? –