Следуйте @ServiceStack или просмотрите документы, используйте StackOverflow или Forum Forums для поддержки.
Просмотреть заметки о выпуске для последних функций или см. ServiceStack.net/features для обзора.
ServiceStack-это простая, быстрая, универсальная и высокопроизводительная полнофункциональная структура веб-услуг и веб-сервисов, которая вдумчиво архинируется для снижения искусственной сложности и содействия наилучшим операциям с удаленными услугами с помощью дизайна на основе сообщений, позволяющих максимально использовать повторное использование, которое может использовать интегрированный шлюз сервиса для создания модулярного сервисного архитектуры, которые могут использовать интегрированные сервисные архитектуры. Услуги ServiceStack потребляются с помощью массива встроенных форматов быстрых данных (INC. JSON, XML, CSV, JSV, Protobuf, Wire и MSGPACK), а также XSD/WSDL для конечных точек SOAP и MQ Redis MQ и Amazon SQ MQ.
Его дизайн и простота фокусируют непревзойденную набор функций производительности, которые могут быть объявлены без кода, от создания полностью запрошенных веб-API с одним типичным запросом DTO с Auto запросом, поддерживающим все основные RDBMS до встроенной поддержки для Auto Batched запросам или без усилий, обеспечивающих богатые HTTP-кешковые и расколотые для всех ваших услуг существующих.
Ваши же службы также служат контроллером в Smart Briant ServiceStack Views, уменьшающие усилия по обслуживанию как веб-приложений, так и приложений для одной страницы, а также богатых настольных и мобильных клиентов, которые могут предоставить мгновенный интерактивный опыт, используя события ServiceStack в реальном времени.
Услуги ServiceStack также максимизируют производительность для потребителей, обеспечивающих мгновенный сквозной типизированный API без кодового генерального поколения, обеспечивающего наиболее продуктивный опыт разработки для разработки .NET для .NET Web Services.
ServiceStack now integrates with all Major IDE's used for creating the best native experiences on the most popular platforms to enable a highly productive dev workflow for consuming Web Services, making ServiceStack the ideal back-end choice for powering rich, native iPhone and iPad Apps on iOS with Swift, Mobile and Tablet Apps on the Android platform with Java, OSX Desktop Applications as well as targeting the most popular .NET PCL platforms including Xamarin.ios, xamarin.android, Windows Store, WPF, Winforms и Silverlight:
Предоставляя мгновенные нативные API для C#, TypeScript, F# и VB.NET непосредственно в Visual Studio для самых популярных платформ .NET, включая iOS и Android, используя Xamarin.ios и Xamarin.Android в Windows.
Предоставление поддержки C# Native Tipes для разработки мобильных приложений iOS и Android с использованием xamarin.ios и xamarin.android с Xamarin Studio на OSX. Плагин ServiceStackxs также обеспечивает богатый опыт разработки веб -сервисов. Разработка клиентских приложений с Mono Develop на Linux
Предоставление мгновенного нативного типичного API в Swift, включая общих клиентов службы, обеспечивающих высокопродуктивный рабочий процесс и легкое потребление веб -сервисов из нативных приложений iOS и OSX - непосредственно из Xcode!
Предоставление мгновенного нативного типичного API в Java и Kotlin, включая идиоматическую Java Generic Service Clients, поддерживающие синхронизацию и асинхронные запросы, используя Asynctasks Android, чтобы обеспечить создание богатых услугами и адаптивными нативными Java или мобильными приложениями Kotlin на платформе Android - непосредственно из студии Android!
Плагин Idea ServiceStack может быть установлен непосредственно из репозитория плагина IntelliJ и обеспечивает бесшовную интеграцию с проектами Intellij Java Maven для создания типичного API для быстрого и без усилий потреблять веб-сервисы с удаленным ServiceStack от чистых кросс-платформенных клиентов Java или Kotlin.
Непревзойденная производительность, предлагаемая Java Add ServiceStack Spearch, также доступна в плагине ServiceStackeClipse IDE, который можно установить с рынка Eclipse, чтобы обеспечить глубокую интеграцию справочника Add ServiceStack с помощью проектов Eclipse Java Maven, позволяя разработчикам Java без усилий добавить и обновлять ссылки на свои эволюционные сервисные услуги.
В дополнение к нашему растущему списку поддерживаемых IDE, сценарии NPM Cross-Clatform ServiceStack-Cli позволяют легко для строительных серверов, автоматизированных задач и бегунов командной строки ваших любимых текстовых редакторов, чтобы легко добавить и обновить ссылки ServiceStack!
Этот пример также доступен в качестве автономного интеграционного теста:
//Web Service Host Configuration
public class AppHost : AppSelfHostBase
{
public AppHost ( )
: base ( "Customer REST Example" , typeof ( CustomerService ) . Assembly ) { }
public override void Configure ( Container container )
{
//Register which RDBMS provider to use
container . Register < IDbConnectionFactory > ( c =>
new OrmLiteConnectionFactory ( ":memory:" , SqliteDialect . Provider ) ) ;
using ( var db = container . Resolve < IDbConnectionFactory > ( ) . Open ( ) )
{
//Create the Customer POCO table if it doesn't already exist
db . CreateTableIfNotExists < Customer > ( ) ;
}
}
}
//Web Service DTO's
[ Route ( "/customers" , "GET" ) ]
public class GetCustomers : IReturn < GetCustomersResponse > { }
public class GetCustomersResponse
{
public List < Customer > Results { get ; set ; }
}
[ Route ( "/customers/{Id}" , "GET" ) ]
public class GetCustomer : IReturn < Customer >
{
public int Id { get ; set ; }
}
[ Route ( "/customers" , "POST" ) ]
public class CreateCustomer : IReturn < Customer >
{
public string Name { get ; set ; }
}
[ Route ( "/customers/{Id}" , "PUT" ) ]
public class UpdateCustomer : IReturn < Customer >
{
public int Id { get ; set ; }
public string Name { get ; set ; }
}
[ Route ( "/customers/{Id}" , "DELETE" ) ]
public class DeleteCustomer : IReturnVoid
{
public int Id { get ; set ; }
}
// POCO DB Model
public class Customer
{
[ AutoIncrement ]
public int Id { get ; set ; }
public string Name { get ; set ; }
}
//Web Services Implementation
public class CustomerService : Service
{
public object Get ( GetCustomers request )
{
return new GetCustomersResponse { Results = Db . Select < Customer > ( ) } ;
}
public object Get ( GetCustomer request )
{
return Db . SingleById < Customer > ( request . Id ) ;
}
public object Post ( CreateCustomer request )
{
var customer = new Customer { Name = request . Name } ;
Db . Save ( customer ) ;
return customer ;
}
public object Put ( UpdateCustomer request )
{
var customer = Db . SingleById < Customer > ( request . Id ) ;
if ( customer == null )
throw HttpError . NotFound ( "Customer '{0}' does not exist" . Fmt ( request . Id ) ) ;
customer . Name = request . Name ;
Db . Update ( customer ) ;
return customer ;
}
public void Delete ( DeleteCustomer request )
{
Db . DeleteById < Customer > ( request . Id ) ;
}
}Не требуется кода, может повторно использовать DTOS выше сервера:
var client = new JsonServiceClient ( BaseUri ) ;
//GET /customers
var all = client . Get ( new GetCustomers ( ) ) ; // Count = 0
//POST /customers
var customer = client . Post ( new CreateCustomer { Name = "Foo" } ) ;
//GET /customer/1
customer = client . Get ( new GetCustomer { Id = customer . Id } ) ; // Name = Foo
//GET /customers
all = client . Get ( new GetCustomers ( ) ) ; // Count = 1
//PUT /customers/1
customer = client . Put (
new UpdateCustomer { Id = customer . Id , Name = "Bar" } ) ; // Name = Bar
//DELETE /customers/1
client . Delete ( new DeleteCustomer { Id = customer . Id } ) ;
//GET /customers
all = client . Get ( new GetCustomers ( ) ) ; // Count = 0Тот же код также работает с клиентами Android, iOS, Xamarin.forms, UWP и WPF.
F# и VB.NET могут повторно использовать те же клиенты .NET Service и DTO
const client = new JsonServiceClient ( baseUrl ) ;
const { results } = await client . get ( new GetCustomers ( ) ) ; let client = JsonServiceClient ( baseUrl : BaseUri )
client . getAsync ( GetCustomers ( ) )
. then {
let results = $0 . results;
} JsonServiceClient client = new JsonServiceClient ( BaseUri );
GetCustomersResponse response = client . get ( new GetCustomers ());
List < Customer > results = response . results ; val client = JsonServiceClient ( BaseUri )
val response = client.get( GetCustomers ())
val results = response.results var client = new JsonServiceClient ( BaseUri );
var response = await client. get ( GetCustomers ());
var results = client.results; $ . getJSON ( $ . ss . createUrl ( "/customers" , request ) , request , ( r : GetCustomersResponse ) => {
var results = r . results ;
} ) ;Использование определений TypeScript с Angular HTTP -клиентом:
this . http . get < GetCustomersResponse > ( createUrl ( '/customers' , request ) ) . subscribe ( r => {
this . results = r . results ;
} ) ; $ . getJSON ( baseUri + "/customers" , function ( r ) {
var results = r . results ;
} ) ;Это весь код приложения, необходимый для создания и потребления простой веб-службы REST с поддержкой базы данных!
Если у вас установлен Nuget, самый простой способ начать - это:
Последний V4+ на Nuget - это коммерческий релиз с бесплатными квотами.
Окончательный список примеров проектов, кассы использования, демонстрации, стартовых шаблонов
С сентября 2013 года исходный код ServiceStack доступен в рамках общей публичной лицензии/лицензии GNU Affero/FOSS, см. License.txt в источнике. Альтернативное коммерческое лицензирование также доступно, см. В деталях.
Авторы должны утвердить лицензионное соглашение о участнике до того, как будет рассмотрен какой -либо код, см. Документы для получения более подробной информации. Все взносы должны включать тесты, проверяющие желаемое поведение.
ServiceStack включает исходный код великих библиотек ниже для некоторых из ее основных функций. Каждая библиотека выпускается по соответствующей лицензии:
Следуйте @ServiceStack и +ServiceStack для обновлений проектов.
Большое спасибо GitHub и всем участникам ServiceStack:
Аналогичные проекты с открытым исходным кодом для разработки или доступа к веб -сервисам включают: