2010-06-10 2 views
6

이 질문은 조금 오래, 나와 함께하시기 바랍니다. REST에서는 WADL이나 IDL이 필요하지 않아야한다고 생각합니다. 그러나 오히려 암묵적으로 그 개념을 커버 할 무언가. 웹 사이트를 처음 방문했을 때 어떤 서비스가 제공되는지 알지 못합니다. 은 html 홈페이지 (또는 도움말 섹션의 사이트 맵 페이지) 또는 홈 페이지의 기본 메뉴에있는 내용을으로 발견합니다. 비유한다면 홈페이지 나 사이트 맵은 WSDL이 WS- * 또는 WADL이 REST 서비스 일 수있는 것입니다. 그것만이 다른 HTML 컨텐트와 같습니다. REST에서는 HATEOS 패러다임을 존중하면서 다음을 수행하는 것이 좋은 방법이라고 생각합니다. 다른 리소스에 대한 링크를 나열하는 최상위 (또는 기본) 리소스가 있어야합니다. 도서관 예를 들어, RestLibrary.com/이 될 수 있다고 말한다 뭔가 같은 :이 미디어 유형 "응용 프로그램/vnd.libraryml + XML은"정의를 (표준 또는있을 수 있습니다 만 있다고 가정하는 것이REST : WADL 또는 IDL이 아닌 경우 다음 방법을 사용하십시오.

<root xmlns:lib="http://librarystandards.com/libraryml"> 
<resource class="lib:book"> 
    <link type="application/vnd.libraryml+xml" template="mylib.com/book/{isbn}" /> 
    <link type="application/vnd.libraryml+xml" rel="add" href="mylib.com/book" method="POST" /> 
    <link type="application/vnd.libraryml+xml" rel="update" template="mylib.com/book/{isbn}" method="PUT" /> 
</resource> 
<resource class="lib:bookList"> 
    <link template="mylib.com/book?keywords={keywords}" type="application/vnd.openlibrary+xml" rel="search" /> 
</resource> 
</root> 

주 독점적 인 어휘) libraryml. 또한 클라이언트는이 "홈페이지"리소스 (루트, 리소스 및 링크 요소)를 이해할 수 있어야합니다. 이것은 WADL 대신 사용할 수있는 부분입니다. 모든 클라이언트가 이해할 수 있어야하는 추상 어휘입니다. 예를 들어 Atom과 같은 기존 표준을 사용할 수 있습니다. 그러나 주요 개념은 모든 클라이언트가 이해할 수있는 추상 어휘를 사용하는 것입니다. 왜 WADL을 사용하지 않으시겠습니까? 우물 단지는 서비스 발견만을위한 것입니다. 여기서 생각은 하이퍼 미디어의 기반이 될 수있는 밝은 추상적 어휘를 갖는 것입니다. "루트"어휘. 올빼미와 마찬가지로 올빼미 : 물건 ... 등 이제 클라이언트가 "libraryml"표준을 알고 있으면 이해할 수있는 항목 (미디어 유형 속성 및 xmlns를 구문 분석 한 후)에 대한 링크를 따라갈 수 있습니다. 그렇지 않은 경우에는 그렇지 않습니다.

내가 REST 아키텍처에서 어떤 것을 처리하는 방법을 이해할 수 없을 때 우리는 인간이 웹에서 어떻게 처리 하는지를 보는 경향이 있습니다. 웹에서는 사이트 작성자가 클라이언트 (사용자)의 의미에 관계없이 사이트 제작자가 특정 콘텐츠를 제공 할 수있게 해주는 HTML이라는 일반 언어를 사용합니다. 브라우저는 HTML의 내용을 이해하지만 콘텐츠의 의미는 이해하지 못합니다. (도메인 특정) 내용을 이해하는 사용자입니다. 내가 QuantumPhysics.org라고 말하면, 브라우저는 홈 페이지를 렌더링 할 수 있습니다. (결국 HTML입니다) 홈 페이지를 읽을 수 있습니다. 퀀텀을 이해하면 계속 탐색 할 수 있습니다. RetsLibrary.com의 예에서

  • (내가 hardway :)를 배우고 싶어하지 않는 한) 나는 그냥하지 않는 경우 클라이언트 응용 프로그램은 그냥 날 QuantumPhysics.org에 브라우저
  • 을 + 같다 . 미디어 유형 "application/vnd.libraryml + xml"은 양자 물리학 (지식)입니다.
  • http는 두 예제 모두에서 http입니다. 이 RestLibrary.com XML + 그 작은 조금 추상적 인 어휘 (루트 자원 및 링크는 아톰 같은으로 대체 할 수 있음)입니다에 QuantumPhysics.org의
  • 이제 HTML입니다.

이 방법에는 어떤 값이 있습니까? 우리는 하이퍼 미디어와 "초기 URI"개념으로 성공할 수 있도록 근본적인 초 임계 단어가 필요하지 않습니까?

편집 그래, 근본적인 어휘로 RDF를 사용하지 마십시오!

답변

4

네, 확실히이 유형의 미디어 유형이 필요합니다.

마이크 켈리

는 예를 들어 http://restafari.blogspot.com/2010/06/please-accept-applicationhalxml.html을 참조하십시오 "하이퍼 미디어 응용 프로그램 언어"응용 프로그램/복도 + XML의 필요성을 제시 한 후 우리는 다른 하루는 Freenode IRC REST 채널에 일이 정확한 유형에 대해 얘기했다.

RDF는 이런 유형의 과도한 것처럼 보이지만 잘못된 것으로 증명 될 수 있습니다. RDF가 HATEOAS보다 Linked Data에 더 중점을 둡니다.

+0

Darrel 링크를 제공해 주셔서 감사합니다. 어떤 사람들은 이것에 대해서도 생각하고 있습니다. – redben

+0

IRC 채널을 검토하고 체크 아웃하기로 결정했기 때문에 다행입니다. 다시 오세요! –

관련 문제