2012-06-18 3 views
1

HATEOAS 패러다임에서 REST 응답의 링크는 동작, 자원을 의미합니까? 유형 드롭 다운이있는 주문 양식이 있습니다. 일부 고급 옵션 필드는 해당 선택 사항에 따라 양식에로드됩니다.REST 응답의 링크

HATEOAS 패러다임으로 이동하면 클라이언트는 추가 필드로드 위치를 알거나 추측해서는 안됩니다. 따라서 제공된 옵션마다 1 개의 링크가 포함되었습니다. 링크 개체의 rel 특성은 링크의 의도에 대한 몇 가지 종류의 문서를 제공합니다. 이것이 올바른 구현입니까?

인터넷에서 사용할 수있는 인기있는 커피 숍 예제 (Ian Robinson의 강연 및 InfoQ 기사)는 링크를 사용하여 다음으로 사용할 수있는 상태 전환을 식별합니다. 이것들은 같은 정신입니까?

답변

1

귀하의 예가 정확하거나 틀린 것은 아니지만 오히려 호환 하이퍼 미디어 링크라고 말하고 싶습니다. 하이퍼 미디어 링크에는 여러 유형이 있으며 가장 적절한 것을 찾아야합니다. 예를 들어 링크 된 관계를 리소스와 링크 된 리소스에서 분리하는 것이 가끔 적합합니다. XML을 사용하여, 당신이 할 수 있습니다 : 대신 여전히 유효 하이퍼 링크 스타일의

<link rel="type1SpecialOptions" href="http:/yourDomain/specialOptions/type1" /> 
<link rel="type2SpecialOptions" href="http:/yourDomain/specialOptions/type2" /> 

을 :

<link specialOptions="http:/yourDomain/specialOptions/type1" /> 
<link specialOptions="http:/yourDomain/specialOptions/type2" /> 

는 응용 프로그램에 대한 의미가 링크 유형의 유형을 선택합니다. 이 article on hypermedia links에는 하이퍼 미디어 링크 유형에 대한 간략한 설명이 있습니다. 꽤 많이 당신이 하이퍼 미디어와 REST의 용어에 익숙하다고 가정합니다. 따라서 첫 번째을보고 다른 링크 유형의 링크를 따라 가면서 가능한 것을 더 잘 이해하십시오.

0

당신에게 열려있는 몇 가지 선택이 있습니다

  1. 액션 링크 된 자원에 촬영 될 수 있음을 의미 정의 확인해 값을 정의합니다. API 문서에서이를 문서화하십시오. (바람직하게는 자기 - 문서화하고 역 참조 할 수없는 HTTP URI를 사용자의 rel 값으로 사용하십시오!)
  2. 문서 계층 구조의 특정 하이퍼 링크가 GET 요청을 수행 할 수없는 자원을 나타내며 다른 곳의 링크가 자원을 나타내는 것으로 정의하십시오 GET 만 지원합니다. 너는 여기서 원하는만큼 구체적 일 수있다.
  3. 양식 사용 특정 미디어 유형 (XML, HTML)에는 형식 개념이 있습니다. 양식의 동작 인 하이퍼 링크는 명시 적 동작입니다. AJAX가 없으면 브라우저는 현재 POST 만 지원합니다.
  4. Allow: 헤더를 반환하려면 수행 할 수있는 작업에 대한 정보를 제공하려면 OPTIONS을 사용하십시오. 이 선택에는 두 번째 왕복이 필요하지만 위의 세 가지 중 하나 이상을 추가로 지원할 수 있습니다.