Ответ 1
Вы можете найти всю документацию для веб-платформы ServiceStack в вики
Новый API ServiceStack был только выпущен на этой неделе, который уже содержат ответы на все ваши вопросы. Я бы вернусь и прочитал их полностью, но я извлечу фрагменты, которые отвечают на ваши вопросы:
Есть ли документация, которая фактически говорит, какие интерфейсы/базовые классы использовать, и что они делают?
В разделе Знакомство с новым API:
Новый дизайн API упрощает существующие IService и IRestService с помощью этого единого унифицированного интерфейса:
public interface IService {}
Теперь он может обрабатывать запросы RPC Service и Rest Service в одном классе. Интерфейс используется только как интерфейс маркера, который ServiceStack использует для поиска, регистрации и автоматической проводки ваших существующих сервисов. Кроме того, включен удобный конкретный класс Сервис, который содержит легкий доступ к поставщикам ServiceStack
Новый дизайн API показывает пример DTO, реализующий интерфейс IReturn и наследование сервисов от Service - но нет никаких объяснений, если это предпочтительный вариант сейчас
Заголовок в верхней части wiki гласит:
Рекомендуется для будущего развития веб-сервисов
Поскольку новый API-дизайн предлагает множество преимуществ по сравнению с существующим API, мы рекомендуем его использовать для любой новой разработки веб-сервисов. Это займет у нас некоторое время, но мы намерены перенести все старые примеры, чтобы принять новый API. Одна из причин по-прежнему предпочитает старый API, если вы также хотите поддерживать SOAP-клиенты и конечные точки, которые по-прежнему требуют строгости, установленной предыдущим подходом.
Под заголовком Вдохновение написано:
Красота этого предложения заключалась в том, что он уже отлично подобрался с существующей семантикой на основе сообщений ServiceStack, что означало, что мы смогли реализовать ее в рекордные сроки без каких-либо сбоев или нарушений существующих кодов, база. В результате теперь вы можете создавать новые сервисы рядом со своими существующими службами, и они оба будут работать без проблем.
требуется выполнить IReturn
Под заголовком Службы вызовов из типизированного клиента С#:
позволяет сказать, что вы выполняете обычный маршрут копирования DTO (в любом из источников двоичной формы), поэтому на клиенте есть что-то вроде этого:
[Route("/reqstars")]
public class AllReqstars : IReturn<List<Reqstar>> { }
Теперь код на клиенте становится следующим:
var client = new JsonServiceClient(BaseUri);
List<Reqstar> response = client.Get(new AllReqstars());
Что делает веб-запрос GET маршрутом /reqstars. Когда пользовательский маршрут отсутствует на клиенте, он автоматически возвращается к использованию предопределенных маршрутов ServiceStack.
Наконец, вы также можете использовать предыдущий более явный клиентский API (идеально подходит, если у вас нет маркера IReturn < > ):
var response = client.Get<List<Reqstar>>("/reqstars");
Все эти API имеют асинхронные эквиваленты, которые вы можете использовать, когда вам нужно.
как работать с POST/GET/etc,
Все документы API эффективно объясняют, как работает Post Get. У вас есть client.Get()
на клиенте, который вызывает Get()
на сервере или возвращается к использованию Any()
, если он не существует.
В нижней части страницы Wiki показано, как вручную переносить ваши службы из более старого API в новый.
И вот несколько примеров с использованием нового API: