2012-10-03 28 views
11

Tôi đang xem api mới xuất hiện cách đây 2 tuần. Có vẻ nhưServiceStack IReturn

ReqDTO : IReturn<List<ResDTO>> { //... } 

Bit "IReturn" có vẻ là tùy chọn? Các DTO trong dự án demo RazorRockstars hoạt động mà không có nó.

Trả lời

17

Đây là bổ sung mới trong ServiceStack's New API cho phép bạn ghi lại Loại phản hồi dự kiến ​​mà Yêu cầu DTO sẽ trả về, ví dụ: với

ReqDTO : IReturn<List<ResDTO>> { ... } 

Cho phép bạn gọi sử dụng bất kỳ khách hàng C# Dịch vụ với:

List<ResDTO> response = client.Get(new ReqDto()); 

Nếu bạn không có IReturn Marker cuộc gọi khách hàng của bạn sẽ phải trông giống như:

List<ResDTO> response = client.Get<List<ResDTO>>(new ReqDto()); 

Điều gì đó mà khách hàng/người tiêu dùng dịch vụ của bạn cần biết. Nếu bạn có điểm đánh dấu trên DTO thì kiểu phản hồi đã được biết.

Điểm đánh dấu IReturn<> cũng được sử dụng để xác định Phản hồi DTO được sử dụng trong Phản hồi HTTP trong trang /metadata của ServiceStack.

+0

Sử dụng ServiceStack 3.9.x và tôi chỉ tự hỏi liệu «IReturn' có được thi hành không? tức là nếu điểm cuối của tôi trả về dữ liệu không khớp với loại được chỉ định, nó có nên ném ngoại lệ không? – JaKXz

1

Theo như tôi biết, đây chỉ là một cách thuận tiện để xác định yêu cầu/phản hồi DTO của bạn. Bạn có thể sử dụng nó miễn phí hay không.

1

Trong trường hợp bạn xác định DTO của mình trong thư viện lớp di động, bạn sẽ không thể sử dụng IReturn. Có lẽ IReturn nên được định nghĩa trong PCL trong ServiceStack. Chỉ là một ý nghĩ.

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