Tôi hiện đang đọc "Nghỉ ngơi trong thực tế" cuốn sách. Tôi không thể hiểu thuật ngữ sau Hypermedia, định dạng hypermedia, điều khiển hypermedia, giao thức ứng dụng tên miền. Tác giả đã gợi ý nhu cầu về định dạng hypermedia miền cụ thể. Tôi khó có thể hiểu được. Tôi googled những điều khoản này nhưng không thể tìm thấy một câu trả lời đúng. Bất cứ ai có thể giải thích các thuật ngữ này và tại sao chúng ta cần định dạng hypermedia miền cụ thể thay vì ứng dụng/xml?là những gì hypermedia, điều khiển hypermedia, định dạng hypermedia
Trả lời
Hypermedia = thực tế là máy khách và máy chủ đang nói về một số biểu diễn thống nhất ví dụ: liên kết siêu.
Điều khiển HyperMedia = Tài nguyên cần phải thực hiện thao tác trên đó. Vì vậy, ví dụ một sản phẩm được đại diện bởi tên miền siêu liên kết/sản phẩm/001 thì tài nguyên có thể được vận hành (chỉnh sửa và xóa) trên miền kiểm soát hypermedia/sản phẩm/001/chỉnh sửa và miền/sản phẩm/001/xóa.
Sự khác biệt lớn nhất là trong cách tiếp cận. hệ thống thủ tục đầu tiên viết các hoạt động như chuyển tiếp trạng thái trong mã tuần tự (java, vv), sau đó các tương tác được tạo thành các siêu liên kết để phân phối HATEOAS.
Nhưng các hệ thống được tiếp cận dưới dạng tương tác trực tiếp mô hình tương tác và do đó cung cấp siêu liên kết trực tiếp. Ví dụ mẫu là http://www.masterkube.com/hateoas_technology.html có tại đây.
Hy vọng điều này sẽ hữu ích.
Có rất nhiều nhầm lẫn về điều này, bởi vì hầu hết các ứng dụng mà tự gọi mình còn lại không sử dụng hypermedia và đang không nghỉ ngơi chút nào.
Hypermedia là sự tổng quát của siêu văn bản cho nội dung không phải HTML. Bạn có thể nói siêu văn bản là một tập con của hypermedia. Hypermedia có thể là HTML trong trình duyệt, với tất cả các liên kết, nút và mọi thứ được hiển thị để bạn có thể duyệt một trang web hoặc tài liệu XML hoặc JSON có thể được phân tích cú pháp bởi ứng dụng khách tự động. con người sẽ làm với trình duyệt, nhấp vào các liên kết và nút được hiển thị.
HATEOAS nghĩa sự tương tác của một khách hàng với một ứng dụng còn lại phải được thúc đẩy bởi hypermedia, hoặc một cách đơn giản, khách hàng nên có được tất cả các URI cho mọi nguồn lực cần thiết bằng cách liên kết trong các đại diện của các nguồn lực tự sau đây, không phải bằng cách dựa vào thông tin ngoài băng, như các mẫu URI được đưa ra trong tài liệu, như nhiều API làm.
Đây là đơn giản hơn là bạn tưởng. Nó chỉ có nghĩa là sự tương tác giữa một ứng dụng khách và một ứng dụng REST phải giống hệt như một người duyệt một trang web. Lấy chính bản thân Stack Stack. Có người dùng, câu hỏi và câu trả lời. Khi bạn muốn xem danh sách các câu hỏi của mình, bạn không truy cập trang web tài liệu, nhận mẫu URI để liệt kê các câu hỏi của bạn, điền một trình giữ chỗ với id người dùng của bạn và dán nó vào brownser của bạn. Bạn chỉ cần nhấp vào liên kết đến tài liệu khác được mô tả dưới dạng danh sách câu hỏi và thậm chí bạn không quan tâm đến URI chính xác là gì. Đó là những gì HATEOAS có nghĩa là trong thực tế.
An hypermedia forma t xác định hợp đồng giữa khách hàng và máy chủ. Đó là định dạng dữ liệu được kích hoạt siêu liên kết mà bạn đang sử dụng cho một đại diện cụ thể của một tài nguyên trong một ứng dụng hypermedia. Ví dụ, nếu bạn có tài nguyên người dùng, bạn phải ghi lại chính xác những gì khách hàng mong đợi từ một đại diện của tài nguyên đó và cách phân tích cú pháp biểu diễn để trích xuất thông tin. Trước khi tương tác với API của bạn, khách hàng của bạn cần phải thực hiện một phân tích cú pháp để trích xuất các thông tin, họ cần phải biết những gì thuộc tính tài nguyên có và những gì họ có nghĩa là, những gì quan hệ liên kết họ nên mong đợi và những gì chuyển trạng thái có sẵn vv
hypermedia khiển là sự kết hợp của các phương pháp giao thức và các mối quan hệ liên kết trong một định dạng hypermedia mà nói với khách hàng những gì chuyển trạng thái có sẵn và làm thế nào để thực hiện chúng. Ví dụ, một câu hỏi có thể có một liên kết rel=post_answer
hy vọng biểu diễn Trả lời làm trọng tải của một phương thức POST và sẽ tạo một tài nguyên Trả lời mới liên quan đến nó.
Khi bạn có một bộ định dạng siêu dữ liệu được xác định, bạn cần một loại phương tiện cụ thể tên miền để xác định chính xác định dạng hypermedia nào đang được sử dụng cho một tương tác cụ thể. Một loại phương tiện truyền thông chung như application/xml
chỉ cho khách hàng biết cách phân tích cú pháp định dạng dữ liệu, nó không nói bất cứ điều gì về thông tin được phân tích bởi trình phân tích cú pháp. Ví dụ, giả sử một tài liệu có loại phương tiện truyền thông application/vnd.mycompany.user.v1+xml
, máy khách biết đó là phiên bản 1.0 của tài nguyên người dùng ở định dạng XML.Nếu bạn thay đổi tài nguyên bằng cách thêm hoặc xóa thuộc tính, liên kết, v.v., bạn có thể thay đổi số phiên bản và ứng dụng khách sẽ không bị ngắt vì chúng có thể yêu cầu phiên bản chúng được triển khai bằng cách sử dụng tiêu đề Accept
. Bạn cũng có thể cung cấp nhiều định dạng cho cùng một tài nguyên, như XML hoặc JSON và thậm chí là một biểu diễn khá dễ đọc trong HTML.
Khi bạn quấn mọi thứ lại với nhau - giao thức cơ bản, HTTP; các hợp đồng được định nghĩa bởi định dạng hypermedia và các loại phương tiện - bạn có Giao thức ứng dụng miền, là toàn bộ tập hợp tài nguyên và các chuyển đổi trạng thái có sẵn được quảng cáo bởi ứng dụng của bạn.
Không cần phải nói, 99% các API REST được gọi là bạn sẽ tìm thấy trên internet không tuân theo tất cả những điều này. Hầu hết trong số họ chỉ đơn giản là các API HTTP tuân theo một số ràng buộc REST, đôi khi vì chúng không thực sự cần tất cả chúng, đôi khi bởi vì đó là những gì các nhà phát triển nghĩ REST thực sự là.
- 1. Liên kết Hypermedia với API mới Servicestack
- 2. Làm thế nào để tạo ra một định dạng hypermedia tốt bằng cách sử dụng JMSSerializerBundle?
- 3. Tầm quan trọng của liên kết tự trong API hypermedia là gì?
- 4. REST Hypermedia URI thay đổi Dựa trên bối cảnh trong API Web (HATEOAS)
- 5. Có bất kỳ khung công tác nào để tạo giao diện REST thích hợp (tức là Hypermedia) trong NodeJS không?
- 6. Làm thế nào để loại bỏ các phần tử hypermedia khỏi các biểu diễn được tạo ra bởi Spring Data REST?
- 7. Bàn điều khiển định dạng Đầu ra
- 8. Bộ điều khiển AngularJS là 'và dạng. $ $
- 9. tùy chọn vô hiệu hóa định dạng HATEOAS trong mùa xuân dữ liệu Nghỉ ngơi
- 10. là những gì một điều phối
- 11. Định dạng datetime là gì?
- 12. Định dạng lại Dữ liệu Bảng điều khiển Định dạng Rộng thành Định dạng Dài
- 13. mùa xuân dữ liệu REST trong JSON đơn giản (không định dạng HAL)
- 14. Định dạng ANSI là gì?
- 15. Định dạng TREC là gì?
- 16. Trình điều khiển loại XA là gì?
- 17. Chính xác "Bảng điều khiển" là gì?
- 18. Điều khiển không cửa sổ là gì?
- 19. là những gì AbstractTestNGSpringContextTests
- 20. Trò chơi Định dạng lệnh giữa bộ điều khiển bluetooth và giao diện điều khiển
- 21. Những điều tốt về chất nhờn là gì?
- 22. Mặc định cho Binding.Mode = Mặc định cho điều khiển WPF là gì?
- 23. Các chuẩn C# "định dạng" là gì?
- 24. Định dạng phụ đề VOBsub là gì?
- 25. Lớp điều khiển của bootstrap làm gì?
- 26. gì là định dạng tập tin này được gọi là
- 27. Điều khiển CompileThreshold, Tier2CompileThreshold, Tier3CompileThreshold và Tier4CompileThreshold là gì?
- 28. "printf" trong vi điều khiển, nó là gì?
- 29. WPF: Điều khiển vùng chứa chung là gì?
- 30. Sự khác nhau giữa trình điều khiển WDM, trình điều khiển KMDF và trình điều khiển UMDF là gì?
Vậy ứng dụng/vnd.mycompany.user.v1 + xml truyền đạt cho người dùng về thông tin đã được phân tích cú pháp như thế nào? – vishnu
Không. Tài liệu mô tả 'application/vnd.mycompany.user.v1 + xml'. –
Có phải HATEOAS nếu một ứng dụng chỉ cung cấp liên kết tới nguồn cấp phát được tạo bởi POST trong tiêu đề vị trí của phản hồi không? Hoặc thuật ngữ hypermedia chỉ bao gồm các liên kết được chứa bên trong cơ thể? – Marv