Tôi cần viết một máy chủ REST đơn giản trong Delphi và một máy khách trong Ruby on Rails. Tôi đã xem tất cả các video của Marco Cantu về REST ở Delphi và tôi có một câu hỏi:Sử dụng yêu cầu REST ở Delphi
Làm thế nào để yêu cầu xử lý Delphi như "https://stackoverflow.com/users/1"
trong đó 1
là ID của người dùng?
Tất cả các ví dụ tôi đã nhìn thấy sử dụng các chức năng đơn giản (như EchoString(value)
hoặc ReverseString(Value)
) và yêu cầu là "Datasnap/rest/ClassName/EchoString/Value"
, nhưng tôi cần một yêu cầu như "Datasnap/rest/classname/123"
.
Ví dụ: TContractsCollection
là tập hợp các hợp đồng và tôi muốn xem hợp đồng với ID=324556
. Vì vậy, trong một trình duyệt (và trong các khách hàng ROR) nó sẽ được (ví dụ):
"http://localhost:3000/DataSnap/rest/TContractsCollection/324556"
Nhưng Delphi viết:
"TContractsCollection method not found in the server method list"
Bất kỳ ý tưởng?
Có một khung nhẹ mới cho Delphi và Free Pascal bao gồm [RESTful services support] (http://mikejustin.wordpress.com/dwf/) với ánh xạ tham số yêu cầu để bạn có thể khai báo URL với placeho lders như '/ users/{userId}'. (Tôi là tác giả của khuôn khổ này) – mjn
Hiển thị chi tiết thực hiện nội bộ của máy chủ như tên lớp (TContractCollection) không phải là một thiết kế RESTFul tốt. Các thực thể (hoặc tài nguyên) nên được đặt tên theo cách dễ hiểu. URL RESTFul trong trường hợp này sẽ là http://mydomain.com/resources/contracts/324556, để biết thêm ví dụ, hãy xem http://stackoverflow.com/a/256359/80901 – mjn
cảm ơn, mjn. Tôi đã viết nó để nhấn mạnh rằng đây là một lớp học. – yamaxim