Nếu tôi hiểu chính xác, theo kiểu còn lại, mọi truy vấn (nghĩa là mọi hành động trên mọi tài nguyên không sửa đổi trạng thái của tài nguyên) sẽ được mã hóa trong chuỗi truy vấn, sử dụng phương thức get, không có nội dung nào.Làm cách nào để chuyển các truy vấn phức tạp trong REST?
Tôi có đúng không?
Vâng, tôi có một số ứng dụng giao tiếp với db thông qua một tin nhắn XML được xử lý bởi một thành phần Visual Basic 6.
thông điệp cho một truy vấn là một cái gì đó như thế này
<xml>
<service>account</service>
<resource>invoice</resource>
<action>query</action>
<parameters>
<page>1</page>
<page_len>10</page_len>
<order>date</order>
<fields>*</fields>
<conditions>
<date>2009-01-01..2009-01-31</date>
<customer_id>24</customer_id>
</conditions>
</parameters>
</xml>
Ngay bây giờ chúng tôi đang trong quá trình thiết kế lại các thông điệp XML của chúng tôi, và chúng tôi muốn làm điều đó trong một cách mà họ có thể dễ dàng ánh xạ tới giao diện RESTful. Trong ví dụ trước, chúng ta cần các thẻ "điều kiện" để ngăn chặn xung đột giữa các tham số và điều kiện (ví dụ, điều gì sẽ xảy ra nếu tôi có một trường có tên là "order", "page" hoặc một cái gì đó tương tự. ..
Chúng tôi mặc dù về việc gửi các thông số với một tiền tố, một cái gì đó giống như
http://account/invoice/?_page=1&_page_len=10&_order=date&_fields=*&date=2009-01-01..2009-01-31&customer_id=24
và XML sẽ là một cái gì đó giống như
[...]
<_order>date</_order>
<_fields>*</_fields>
<date>2009-01-01..2009-01-31</date>
<customer_id>24</customer_id>
[...]
Chúng tôi đang cố gắng xác định một số định dạng XML thực sự đơn giản cho các hoạt động crud, và rằng kết quả XML có thể dễ dàng được ánh xạ tới phần còn lại hoặc JSON.
Bạn sẽ ánh xạ loại truy vấn đó trong ứng dụng còn lại như thế nào? Có một số tiêu chuẩn được xác định? hoặc một số trang có các mẫu còn lại/XML/JSON? làm thế nào về trở về lỗi, hoặc bộ dữ liệu lồng nhau?
Cảm ơn rất nhiều.
Tôi không tiếp cận cách tiếp cận của bạn, nhưng tôi muốn làm như thế nào nó sẽ được thực hiện theo nguyên tắc còn lại, không chỉ nhồi xml của riêng tôi trong queryString ... – opensas
Nó phụ thuộc vào việc, như đã đề cập, bạn có thể suy nghĩ lại cách bạn nên gửi dữ liệu, nhưng nếu bạn chỉ gửi dữ liệu được đưa vào cơ sở dữ liệu, thì hãy mã hóa dữ liệu để nó có thể được gửi trong một URL có ý nghĩa. Nếu bạn đang sử dụng GET thì bạn sẽ có một cách tiếp cận khác. –