2010-06-10 34 views
6

Câu hỏi này hơi dài, xin vui lòng chịu đựng với tôi. Trong REST, tôi nghĩ chúng ta không cần WADL hoặc bất kỳ IDL nào. Nhưng đúng hơn là một cái gì đó mà hoàn toàn sẽ bao gồm khái niệm của nó. Cách tôi nghĩ về nó là khi chúng ta (con người) lướt web, khi chúng ta đi đến một trang web lần đầu tiên, chúng ta không biết những dịch vụ mà nó cung cấp. Bạn khám phá những người trên trang chủ html (hoặc trang sơ đồ trang web trong phần trợ giúp) hoặc có thể chỉ là menu chính trên trang chủ. Nếu bạn thực hiện một sự tương tự, trang chủ hoặc sơ đồ trang web cho con người chúng ta là WSDL là gì đối với WS- * hoặc WADL có thể là gì đối với dịch vụ REST. Chỉ có nó giống như bất kỳ nội dung html nào khác. Tôi nghĩ rằng trong REST sau đây là một cách tốt để làm mọi thứ, tôn trọng mô hình HATEOS. Có tài nguyên cấp cao nhất (hoặc mặc định) liệt kê các liên kết đến các tài nguyên khác của bạn. Đối với một ví dụ thư viện, nói RestLibrary.com/ nó có thể là một cái gì đó như:Trên REST: WADL hay không IDL, là phương pháp tiếp cận sau đây đúng không?

<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> 

Lưu ý rằng người ta cho rằng loại phương tiện "application/vnd.libraryml + xml" là một định nghĩa tiêu chuẩn hoặc (có thể chỉ từ vựng độc quyền) có tên là libraryml. Ngoài ra, khách hàng sẽ có thể hiểu được tài nguyên "trang chủ" này (các phần tử gốc, tài nguyên và liên kết). Đây là phần có thể được sử dụng thay cho WADL: một từ vựng trừu tượng mà có thể hiểu được bởi bất kỳ khách hàng nào. Bạn có thể sử dụng một tiêu chuẩn hiện có như Atom chẳng hạn. Nhưng ý tưởng chính là phải có một từ vựng trừu tượng dễ hiểu bởi bất kỳ khách hàng nào. Tại sao không WADL sau đó? cũng wadl chỉ dành cho phát hiện dịch vụ. Ý tưởng ở đây là để có một từ vựng trừu tượng ánh sáng mà sẽ phục vụ như là một cơ sở cho hypermedia. Từ vựng "gốc". Giống như trong cú, chúng ta có cú: điều ... vv Bây giờ nếu khách hàng biết tiêu chuẩn "libraryml", nó có thể theo các liên kết tới những thứ mà nó hiểu (sau khi phân tích các thuộc tính loại phương tiện và xmlns). Nếu không, nó sẽ không.

Khi tôi không thể hiểu cách xử lý một thứ gì đó trong kiến ​​trúc REST, tôi có xu hướng xem cách chúng ta làm thế nào con người trong Web. Trong Web, chúng tôi có ngôn ngữ chung là HTML cho phép các nhà xây dựng trang web phân phối bất kỳ nội dung cụ thể nào, bất kể ý nghĩa của nó với khách hàng (người dùng), Trình duyệt hiểu HTML nhưng không phải là "ý nghĩa" của nội dung của nó. Người dùng hiểu nội dung (tên miền cụ thể). Nếu tôi đi nói QuantumPhysics.org, trình duyệt của tôi có thể hiển thị trang chủ (nó chỉ là html sau khi tất cả) và tôi có thể đọc trang chủ. Nếu tôi hiểu lượng tử thì tôi có thể tiếp tục duyệt. Nếu tôi không tôi chỉ nhận ra (trừ khi tôi muốn tìm hiểu những hardway :))

  • Trong ví dụ RetsLibrary.com ứng dụng khách hàng cũng giống như tôi + trình duyệt của tôi
  • trên QuantumPhysics.org . loại phương tiện truyền thông "ứng dụng/vnd.libraryml + xml" là vật lý lượng tử (kiến thức).
  • http là http trong cả hai ví dụ.
  • Giờ đây HTML của QuantumPhysics.org nằm trong RestLibrary.com là XML + nhỏ từ vựng trừu tượng nhỏ (gốc tài nguyên và liên kết, bạn có thể thay thế bằng cái gì đó như Atom).

Vậy cách tiếp cận này có bất kỳ giá trị nào không? không phải chúng ta cần một siêu từ vựng siêu nhỏ để chúng ta có thể thành công với hypermedia và khái niệm "URI ban đầu"?

chỉnh sửa Vâng tại sao không RDF làm từ vựng gốc!

Trả lời

4

Có, tôi chắc chắn thấy sự cần thiết của loại phương tiện truyền thông này.

Chúng tôi đã nói về loại chính xác điều này trên kênh IRC REST của freenode ngày khác sau khi Mike Kelly gợi ý nhu cầu về một "Hypermedia Application Language" application/hal + xml

Xem http://restafari.blogspot.com/2010/06/please-accept-applicationhalxml.html cho một ví dụ.

RDF có vẻ như quá mức cần thiết cho loại điều này, nhưng tôi sẽ rất vui khi được chứng minh là sai. Tôi thấy RDF tập trung hơn vào Dữ liệu được liên kết hơn HATEOAS.

+0

Cảm ơn bạn đã liên kết Darrel. Điều cần biết là một số người cũng đang nghĩ về điều này! – redben

+0

Rất vui khi bạn quyết định đến và kiểm tra kênh IRC. Lại một lần nữa! –

Các vấn đề liên quan