ServiceStack IReturn

Я смотрю новый api, который вышел 2 недели назад. Кажется,

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

"IReturn" бит представляется необязательным? DTO в демонстрационном проекте RazorRockstars без него.

Ответ 1

Это новое дополнение в ServiceStack New API, которое позволяет документировать ожидаемый тип ответа, возвращаемый Request DTO, например. с

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

Позволяет вам звонить с помощью любого из клиентов службы С# с помощью:

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

Если у вас не было маркера IReturn, ваш клиентский вызов должен выглядеть следующим образом:

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

Это то, о чем должен знать клиент/покупатель вашего сервиса. Если у вас есть маркер на DTO, тип ответа уже известен.

Маркер IReturn<> также используется для определения DTO ответа, который используется в HTTP-ответах на страницах ServiceStack /metadata.

Ответ 2

Насколько я знаю, это просто удобный способ определения ваших DTO запросов/ответов. Вы можете использовать его или нет.

Ответ 3

В случае, когда вы определяете свои DTO в переносимой библиотеке классов, вы не сможете использовать IReturn. Возможно, IReturn следует определить в PCL в ServiceStack. Просто мысль.