2011-12-05 4 views
1

내가 고객에게 link relations를 제공하기 위해 노력하고있어 (예를 들어이 무엇인지 GET 진입 점을 반환) :POST 끝점에 대한 링크 관계를 만드는 방법은 무엇입니까? 내 웹 서비스의 편안하고 API를 구축하는 동안

<doc> 
<links> 
    <link rel="self" href="/home"/> 
    <link rel="post" href="/post-new-article"/> 
</links> 
</doc> 

내가있는 것을 이해하도록 클라이언트를 기대하고 있습니다 새 기사를 게시하려면 /post-new-article"text"이라는 POST 요청을 쿼리 매개 변수로 제출해야합니다.

그러나 나는이 문서에서 "POST"에 대해 아무 말도하지 않았으며, 내가 기대하고있는 HTTP 쿼리 매개 변수를 말하지 않았다. 이 정보를 어디에서 어떻게 제공해야합니까? 그것에 관한 사실상의 표준/협약이 있습니까?

답변

2

기술적으로 정답은 문서의 미디어 유형에 의해 정의된다는 것입니다. 예를 들어 API가 HTML을 제공한다고 가정합니다. 그리고 클라이언트는 브라우저입니다.

규칙에 따라 사용자 에이전트 (브라우저)가 자원 (앵커 태그로 식별 됨)을 방문하면 API를 제공하는 서버에 HTTP GET을 발급합니다. 모든 것이 계획대로 진행된다고 가정하면 서버는 해당 자원의 다른 HTML 표현을 리턴합니다. 사용자 에이전트가 양식을 제출하면 form 태그의 method 속성이 데이터를 POST해야 표시하지 않는 한

마찬가지로, 기본적으로는 HTTP GET를 발행합니다. (세부 사항 here)

API 문서는 REST 서비스가 사용하는 미디어 유형을 자세히 지정해야합니다. 사용자 정의 유형 인 경우 사양에는 링크를 따르기위한 규칙이 포함되어야합니다. API가 HTTP를 통해 실행되는 경우 규칙은 GET, POST, DELETE 등을 비롯한 기타 요구 사항/규칙을 지정합니다.

Roy 자신 : http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven