2009-10-02 30 views
36

Chúng tôi đang mở rộng API REST HTTP của chúng tôi để cho phép khách hàng tải ảnh lên (cho mục đích của câu hỏi này, giả sử dữ liệu nhị phân). Cho đến nay chúng tôi chỉ cho phép chuỗi đơn giản trong các tham số API của chúng tôi. Cách tốt nhất để cho phép họ tải lên dữ liệu nhị phân là gì? Nó sẽ được yêu cầu cho các hình thức mã hóa base64? URL có quá dài để máy chủ web xử lý không?Cách tốt nhất để chuyển dữ liệu nhị phân sang dịch vụ API REST HTTP là gì?

Bất kỳ đề xuất/phương pháp hay nhất nào?

+0

Bạn có thể muốn xem http://stackoverflow.com/questions/1500744 –

+1

Tại sao bạn sử dụng thông số URI? Mọi thứ bạn cần từ chúng có thể được đóng gói trong tiêu đề yêu cầu HTTP của chúng. – Gandalf

Trả lời

34

Chỉ cần gửi dữ liệu nhị phân dưới dạng trong cơ thể POST, nhưng với tiêu đề Loại nội dung thích hợp (ví dụ: hình ảnh/jpeg) - Tôi nghĩ đây là cách "RESTful" nhất.

(Nói chung, như một quy tắc chung khi thiết kế các dịch vụ REST, bạn càng làm việc với giao thức HTTP như là thay vì cố che phủ một thứ gì đó không cần thiết và phức tạp trên đầu nó như base64, thì tốt hơn. giao thức RESTful cuối cùng và Loại nội dung cho phép "Đại diện" khác nhau trong "Chuyển giao trạng thái REpresentational")

Một khả năng khác cần lưu ý là chấp nhận URL hình ảnh thay vì tệp thực tế. Điều này khiến cho ứng dụng độc lập khó hơn, ví dụ: đọc hình ảnh ra khỏi ổ đĩa của người dùng, nhưng làm cho nó dễ dàng hơn cho các ứng dụng kiểu mashup, nơi hình ảnh có thể được trả về như một URL từ một dịch vụ khác.

Bạn có thể cho phép cả hai tùy chọn của khóa học.

+1

Loại nội dung nào chúng tôi nên sử dụng cho dữ liệu nhị phân tùy chỉnh không phải là hình ảnh jpeg? – Pacerier

+1

@Bộ kiểm tra xem http://en.wikipedia.org/wiki/Internet_media_type –

+0

bạn có nên thêm tiêu đề Nội dung Độ dài vào phản hồi khi mọi người cố truy xuất hình ảnh không? – Cmag

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