ServiceStack - есть ли обновленная полная документация?

Я пытаюсь обернуть голову вокруг ServiceStack, и хотя он утверждает, что у него действительно хорошая документация, похоже, пока это не так. Есть ли документация, которая фактически говорит, какие интерфейсы/базовые классы использовать, и что они делают?

Просто.. есть куча quesitons и может найти очень мало ответов. новый дизайн API показывает пример DTO, реализующий интерфейс IReturn и наследование сервисов от службы - но нет никаких объяснений, если это предпочтительный вариант сейчас, требуется ли реализовать IReturn, как работать с POST/GET/etc и т.д. и т.д.

Любые ссылки будут оценены.

И да, у меня есть образцы, но, к примеру, у них ничего нет на этом интерфейсе IReturn.. и образцы не будут бить документацию в любом случае.

Ответ 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: