Siga @Servicestack ou visualize os documentos, use o StackOverflow ou os fóruns do cliente para obter suporte.
Veja as notas de versão para obter os recursos mais recentes ou consulte o ServiceStack.net/Features para uma visão geral.
O ServiceStack é uma estrutura de serviços da Web e serviços da Web simples, versátil, versátil e altamente produtiva, que é cuidadosamente arquitetada para reduzir a complexidade artificial e promover os melhores práticas de serviços remotos com um design baseado em mensagens que permite a reutilização máxima que pode aproveitar um gateway de serviço integrado. Os serviços Servicestack são consumíveis por meio de uma variedade de formatos de dados rápidos embutidos (Inc. JSON, XML, CSV, JSV, Protobuf, Wire e Msgpack), bem como XSD/WSDL para pontos de extremidade de sabão e hosts MQ Redis MQ e Amazon Sqs.
Seu foco de design e simplicidade oferece um conjunto incomparável de recursos de produtividade que podem ser convertidos declaradamente sem código, desde a criação de APIs da Web totalmente consultáveis com apenas uma única solicitação digitada DTO com consulta automática que suporta todos os principais RDBMs para o suporte a pilotes de rdbms para o suporte de inspeção e a realização de pessoas que se esforçam sem esforço.
Seus mesmos serviços também servem como o controlador nas visualizações de barbear inteligentes da Servicestack, reduzindo o esforço para atender aplicativos da Web e de página única, bem como clientes ricos em desktop e móveis que podem oferecer experiências interativas instantâneas usando os eventos de servidor em tempo real do Servicestack.
Os serviços do ServiceStack também maximizam a produtividade para os consumidores que fornecem uma API digitada de ponta a ponta instantânea, sem a geração de código que possibilite a experiência de desenvolvimento mais produtiva para o desenvolvimento do .NET to .NET Web Services.
O ServiceStack agora se integra a todos os principais IDEs usados para criar as melhores experiências nativas nas plataformas mais populares para permitir um fluxo de trabalho dev altamente produtivo para o consumo de serviços da Web, tornando o ServiceStack a escolha ideal de back-end para alimentar os aplicativos ricos e ricos em iPhone e iPad. Xamarin.ios, Xamarin.android, Windows Store, WPF, WinForms e Silverlight:
Fornecendo APIs digitados nativos instantâneos para C#, TypeScript, F# e VB.NET diretamente no Visual Studio para as plataformas .NET mais populares, incluindo iOS e Android usando Xamarin.ios e Xamarin.android no Windows.
O fornecimento de tipos nativos de C# para desenvolver aplicativos móveis iOS e Android usando xamarin.ios e xamarin.android com o Xamarin Studio no OSX. O plug -in Servicestackxs também fornece uma rica experiência em desenvolvimento de serviços da web desenvolvendo aplicativos de clientes com mono desenvolver no Linux
Fornecendo uma API digitada nativa instantânea no SWIFT, incluindo clientes de serviços genéricos, permitindo um fluxo de trabalho altamente produtivo e consumo sem esforço de serviços da Web de aplicativos nativos de iOS e OSX - diretamente do XCode!
Fornecendo uma API digitada nativa instantânea em Java e Kotlin, incluindo clientes idiomáticos de serviço genérico de Java, que suportam solicitações de sincronização e assíncrona, aproveitando as assíncronas do Android para permitir a criação de serviços ricos em serviços e responsáveis por Java ou Kotlin Apps na plataforma Android diretamente a partir do Android Studio!
O plug-in do Servicestack Idea é instalável diretamente do repositório de plug-in da Intellij e permite a integração perfeita com os projetos Intellij Java Maven para gerar uma API digitada para consumir sem esforço os serviços remotos da Web ServiceStack de clientes Java ou Kotlin puros de plataforma pura.
A produtividade incomparável oferecida pela Java Add Add Reference também está disponível no plug -in IDE ServiceStackeclipse, que é instalável no mercado do Eclipse para fornecer uma profunda integração de referência ADD ServiceStack com o Eclipse MAVEN Projects Remotos, que permitem que os desenvolvedores de Java a se referem às referências.
Além de nossa crescente lista de IDEs suportados, os scripts NPM da linha de comando de plataforma de plataforma de plataforma do serviceStack facilitará a criação de servidores, tarefas automatizadas e corredores de linha de comando de seus editores de texto favoritos para adicionar e atualizar facilmente e atualizar referências!
Este exemplo também está disponível como um teste de integração independente:
//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 ) ;
}
}Não é necessário gênero de código, pode reutilizar os DTOs do servidor acima:
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 = 0O mesmo código também funciona com clientes Android, iOS, Xamarin.forms, UWP e WPF.
F# e vb.net podem reutilizar os mesmos clientes de serviço .NET e DTO's
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 ;
} ) ;Usando as definições do TypeScript com o cliente HTTP angular:
this . http . get < GetCustomersResponse > ( createUrl ( '/customers' , request ) ) . subscribe ( r => {
this . results = r . results ;
} ) ; $ . getJSON ( baseUri + "/customers" , function ( r ) {
var results = r . results ;
} ) ;Esse é todo o código do aplicativo necessário para criar e consumir um serviço Web REST simples habilitado para banco de dados!
Se você instalou o NUGET, a maneira mais fácil de começar é:
O mais recente V4+ no NUGET é um lançamento comercial com cotas gratuitas.
A lista definitiva de projetos de exemplo, casos de uso, demos, modelos iniciantes
Desde setembro de 2013, o Código Fonte do Servicestack está disponível no GNU Affero Geral Public License/FOSS License Exception, consulte License.txt na fonte. O licenciamento comercial alternativo também está disponível, consulte https://servicestack.net/pricing para obter detalhes.
Os colaboradores precisam aprovar o contrato de licença do colaborador antes que qualquer código seja revisado, consulte os documentos contribuintes para obter mais detalhes. Todas as contribuições devem incluir testes que verifiquem o comportamento desejado.
O ServiceStack inclui o código -fonte das grandes bibliotecas abaixo para algumas de sua funcionalidade principal. Cada biblioteca é lançada sob sua respectiva licença:
Siga @ServicEstack e +ServiceStack para atualizações do projeto.
Muito obrigado ao Github e a todos os colaboradores do Servicestack:
Projetos .NET de código aberto semelhantes para o desenvolvimento ou acesso a serviços da Web incluem: