Nếu tôi được thiết kế một api web ngày hôm nay cho một trang web hiện có, giả sử các trang web được thiết kế tốt đối với việc sử dụng đúng đắn của HTTP, tôi sẽ sử dụng các trang web hiện có như thiết kế với hướng dẫn.
Lấy Stack Overflow làm ví dụ, nó có toàn bộ không gian URI đã được ánh xạ ra. Nó có một bộ hoàn chỉnh các kết nối được xác định giữa các biểu diễn khác nhau. Người dùng của trang web đã quen thuộc với cấu trúc trang web và do đó cấu trúc API đã quen thuộc.
Chỉ phần duy nhất cần thay đổi là nội dung của các biểu diễn, để loại bỏ tất cả đánh dấu không cần thiết. Nó sẽ là cần thiết để thêm vào một vài liên kết templated thêm để cho phép cho các tìm kiếm hiện chỉ có thể truy cập thông qua javascript.Ví dụ: tìm kiếm người dùng không dễ dàng phát hiện được qua điều hướng vì hiện tại liên kết được xây dựng qua javascript.
Thực sự quyết định khó khăn là loại phương tiện nào sử dụng. Bạn có thể sử dụng xương trần html với đánh dấu siêu dữ liệu kiểu RDFa, hoặc tự nhiên và sử dụng định dạng Microdata mới trong Html5. Hoặc, bạn có thể trả về loại phương tiện tùy chỉnh dựa trên xml hoặc Json. Một cái gì đó như application/vnd.stackoverflow.question + xml, vv Các loại phương tiện truyền thông tùy chỉnh làm cho phiên bản thực sự dễ dàng, nhưng nó là ít có thể truy cập cho khách hàng mà không được thiết kế để truy cập StackOverflow trực tiếp. Có thể sử dụng các loại tùy chỉnh kết hợp với nguồn cấp dữ liệu Atom gần như đã có trong StackOverflow,
Thiết kế api trên web thực sự không khác với thiết kế trang web, ngoài thực tế là bạn đang phân phối nội dung sẽ được tiêu thụ bởi một chương trình không phải là trình duyệt web.
Điều bạn không muốn làm là tạo lớp truy cập dữ liệu dựa trên Http. Điều đó cũng giống như thể hiện đồ lót của bạn với thế giới. Trang web hiện tại được tối ưu hóa cho tất cả các tình huống sử dụng phổ biến, nhiều mẫu truy cập api sẽ giống nhau, vì vậy hãy sử dụng lại "các khung nhìn" đã được tạo. Nó có thể là cần thiết để thêm một vài liên kết thêm ở đây và ở đó để làm cho nó một chút nhanh hơn cho các chương trình để có được những dữ liệu mà họ muốn, nhưng những người có thể được tăng thêm khi nhu cầu phát sinh.
Các trang web bằng văn bản đã là các API rất hiệu quả cho các trình duyệt web, thực sự không cần phải quay lại bảng vẽ để hỗ trợ bất kỳ loại ứng dụng khách nào khác. Cấu trúc API không cần phải thay đổi, chỉ là nội dung được phân phối.
Nguồn
2010-02-08 04:06:01
hiệu ứng liên kết trong 3 ... 2 ... 1 ... –
@Charlie "Hiệu ứng Streisand là hiện tượng trực tuyến chủ yếu trong đó nỗ lực kiểm duyệt hoặc xóa một phần thông tin có hậu quả ngoài ý muốn gây ra thông tin được công bố rộng rãi và ở mức độ lớn hơn sẽ xảy ra nếu không có kiểm duyệt đã được cố gắng ... "Xin lỗi, tôi không hiểu? –
Câu hỏi hay hơn là "Đặc điểm của API Web tốt là gì?". Tôi nghĩ * đó là những gì bạn đang cố gắng để có được. Hoặc đó là những gì bạn * nên * cố gắng để có được tại. Tôi cố gắng trả lời, bên dưới. – psychotik