Để khởi động SaaS, tôi đang xây dựng cả một API web RESTful và một vài ứng dụng khách trên các nền tảng khác nhau sử dụng nó. Tôi nghĩ rằng tôi đã có API tìm ra, nhưng bây giờ tôi đang chuyển sang các khách hàng. Như tôi đã đọc về REST, tôi thấy rằng một phần quan trọng của REST là khám phá, nhưng dường như có rất nhiều cuộc tranh luận giữa hai giải thích khác nhau về những gì khám phá thực sự có nghĩa là:Khả năng phát hiện thời gian chạy RESTful API/thiết kế máy khách HATEOAS
Developer khám phá: Nhà phát triển mã hóa rất nhiều chi tiết API vào khách hàng, chẳng hạn như tài nguyên, tham số truy vấn, phương thức HTTP được hỗ trợ và các chi tiết khác mà họ đã phát hiện thông qua duyệt tài liệu và thử nghiệm với phản hồi của API. Kiểu khám phá IMHO này đòi hỏi liên kết mát mẻ và câu hỏi về phiên bản API, và dẫn đến việc ghép nối cứng mã khách hàng với API. Không tốt hơn nhiều nếu sử dụng một bộ sưu tập tài liệu của RPC.
Runtime khám phá - (. Có lẽ, chỉ có một sự hiểu biết về các loại phương tiện truyền thông các thỏa thuận API với) Các ứng dụng client chính nó là có thể tìm ra tất cả những gì nó cần có ít hoặc không có thông tin out-of-band Liên kết có thể nóng. Nhưng để làm cho API rất hiệu quả, rất nhiều liên kết templating cho các tham số truy vấn có vẻ là cần thiết, mà làm cho out-of-band thông tin creep trở lại in Có thể có những khó khăn khác tôi đã không nghĩ đến từ khi tôi đã không đến thời điểm đó trong phát triển. Nhưng tôi thích ý tưởng ghép nối lỏng lẻo.
Runtime khám phá dường như là Chén thánh của REST, nhưng tôi nhìn thấy thảo luận ít quý về cách triển khai một khách hàng như vậy. Hầu như tất cả các nguồn REST tôi đã tìm thấy dường như giả định phát hiện của nhà phát triển. Có ai biết về một số tài nguyên khám phá Runtime không? Thực hành tốt nhất? Ví dụ hoặc thư viện có mã thực? Tôi đang làm việc trong PHP (Zend Framework) cho một khách hàng. Mục tiêu-C (iOS) cho người khác.
Thời gian chạy có phát hiện ra mục tiêu thực tế không, với tập hợp các công cụ và kiến thức hiện tại trong cộng đồng nhà phát triển? Tôi có thể viết khách hàng của tôi để xử lý tất cả các URI theo cách mờ đục, nhưng làm thế nào để làm điều này hiệu quả nhất là một câu hỏi, đặc biệt là trên các kết nối băng thông thấp. Dù sao, URI chỉ là một phần của phương trình. Điều gì về liên kết templating trong bối cảnh thời gian chạy? Làm thế nào về giao tiếp những phương pháp được hỗ trợ, ngoài việc thực hiện rất nhiều yêu cầu OPTIONS?
Chỉ cần một chút sang một bên tham chiếu OPTIONS của bạn. Bạn có thể sử dụng tiêu đề 'Cho phép' để giao tiếp các hoạt động tài nguyên được phép bên ngoài yêu cầu OPTIONS. Roy Fielding đi xa như xem xét tiêu đề như là một dạng siêu văn bản - xem [ở đây] (http://tech.groups.yahoo.com/group/rest-discuss/message/14432). – paulkmoore
tats một câu hỏi gr8, các vấn đề chính được đưa ra danh sách các phương pháp áp dụng, nên khách hàng có thể hình thành các url cho hoạt động CRUD thường xuyên hoặc sẽ được gọi là "out-of-band"? Nói, nếu chúng tôi cung cấp liên kết cho các hoạt động CRUD, làm thế nào để u làm "mẫu" s trong json? Có thể nếu ur sử dụng các loại phương tiện cụ thể của ứng dụng u không cần phải làm "biểu mẫu", nhưng wat là cách tiêu chuẩn để khám phá các loại phương tiện (tức là lược đồ json), thì quá trình khám phá lược đồ được coi là không "ngoài" ban nhạc "cho khách hàng ?? – redzedi
xhtml trông rất đẹp và chất lỏng, nhưng nếu bạn phải làm json, tôi đoán là không định hình bây giờ – redzedi