Siga a @Servicestack o vea los documentos, use StackOverflow o los foros de clientes para su soporte.
Vea las notas de la versión para las últimas características o vea ServiceStack.net/Features para obtener una descripción general.
ServiceStack es un marco de servicios web y de servicios web completos y altamente productivos de los servicios web y altamente productivos que es cuidadosamente arquitected para reducir la complejidad artificial y promover los servicios remotos de servicios remotos con un diseño basado en mensajes que permite una reutilización máxima que puede aprovechar una puerta de servicio integrada para la creación de arquitecturas de servicios modularizados acoplados holgadamente. Los servicios de ServiceStack son consumibles a través de una variedad de formatos de datos rápidos incorporados (inc. JSON, XML, CSV, JSV, ProtoBuf, Wire y Msgpack), así como XSD/WSDL para puntos finales de jabón y hosts MQ, Redis MQ y Amazon SQS MQ.
Su Focus de diseño y simplicidad ofrece un conjunto incomparable de características de productividad que se pueden habilitar declarativamente sin código, desde la creación de API web totalmente consultables con una sola solicitud tipta TTO con una consulta automática que admite todos los RDBM importantes hasta el soporte incorporado para las solicitudes de lotes automáticos o la necesidad de HTTP rica en rica y sin esfuerzo.
Sus mismos servicios también sirven como controlador en las vistas de navaja inteligente de ServiceStack, reduciendo el esfuerzo por servir tanto a las aplicaciones web como a una sola página, así como a clientes de escritorio y móviles ricos que pueden ofrecer experiencias interactivas instantáneas utilizando eventos de servidor en tiempo real de ServiceStack.
ServiceStack Services también maximiza la productividad para los consumidores que proporcionan una API escrita instantánea de extremo a extremo sin el código de código que permite la experiencia de desarrollo más productiva para desarrollar los servicios web .NET a .NET.
ServiceStack ahora se integra con todos los principales IDE utilizados para crear las mejores experiencias nativas en las plataformas más populares para permitir un flujo de trabajo de desarrollo altamente productivo para consumir servicios web, lo que hace que ServiceStack sea la opción ideal de back-end para impulsar aplicaciones de iPhone y iPad nativas de iPad en iOS con las aplicaciones Swift, Mobile y Tablet en la plataforma Android con Android con Java, Aplicaciones de Desktop de Osx, así como las aplicaciones más populares, como se dirigen a las plataformas más populares. Xamarin.ios, Xamarin.Android, Windows Store, WPF, WinForms y Silverlight:
Proporcionando API tipificadas nativas instantáneas para C#, TypeScript, F# y VB.Net directamente en Visual Studio para las plataformas .NET más populares, incluidas iOS y Android, utilizando Xamarin.ios y Xamarin.Android en Windows.
Proporcionar soporte de tipos nativos de C# para desarrollar aplicaciones móviles iOS y Android utilizando Xamarin.ios y Xamarin.Android con Xamarin Studio en OSX. El complemento ServiceStackXS también proporciona una rica experiencia de desarrollo de servicios web que desarrolla aplicaciones de clientes con Mono Desarrollo en Linux
Proporcionar una API escrita instantánea en Swift, incluidos clientes de servicios genéricos que permiten un flujo de trabajo altamente productivo y un consumo sin esfuerzo de servicios web de aplicaciones nativas de iOS y OSX, ¡directamente desde xcode!
Proporcionar una API tipificada nativa instantánea en Java y Kotlin, incluidos clientes de servicios genéricos idiomáticos de Java que admiten solicitudes de sincronización y async aprovechando las AsyncTasks de Android para habilitar la creación de aplicaciones nativas de Java o Kotlin Mobile de Android en la plataforma de Android, directamente desde Android Studio!
El complemento ServiceStack Idea se puede instalar directamente desde el repositorio de complementos de IntelliJ y permite una integración perfecta con los proyectos de IntelliJ Java Maven para generar una API escrita para consumir de manera rápida y sin esfuerzo los servicios web remotos de los clientes Java o Kotlin de plataforma cruzada pura.
La productividad inigualable ofrecida por Java Add ServiceStack Reference también está disponible en el complemento ServiceStackEclipse IDE que se puede instalar desde el mercado de Eclipse para proporcionar una integración profunda de la referencia de ServiceStack con ServiceStack con los proyectos de Eclipse Java Maven Proyectos que permiten a los desarrolladores de Java a agregar y actualizar las referencias de su evolución de su evolución de los servicios de servicio web remoto.
Además de nuestra creciente lista de IDE compatibles, los scripts NPM de línea de comandos de la plataforma cruzada ServiceStack-CLI facilitan a los servidores de construcción, tareas automatizadas y corredores de línea de comandos de sus editores de texto favoritos para agregar y actualizar fácilmente referencias de servicio de servicio.
Este ejemplo también está disponible como prueba de integración independiente:
//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 ) ;
}
}No se requiere la generación de código, puede reutilizar DTOS de servidor anteriores:
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 = 0El mismo código también funciona con Android, iOS, Xamarin.Forms, UWP y WPF.
F# y VB.NET pueden reutilizar los mismos clientes de servicio .NET y 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 ;
} ) ;Uso de definiciones de TypeScript con el 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 ;
} ) ;¡Ese es todo el código de aplicación requerido para crear y consumir un servicio web REST de base de datos simple!
Si tiene instalado Nuget, la forma más fácil de comenzar es:
El último V4+ en Nuget es un lanzamiento comercial con cuotas gratuitas.
La lista definitiva de proyectos de ejemplo, casos de uso, demostraciones, plantillas de inicio
Desde septiembre de 2013, el código fuente de ServiceStack está disponible bajo la excepción de Licencia Pública General de GNU Affero/Licencia FOSS, vea License.txt en la fuente. Las licencias comerciales alternativas también están disponibles, consulte https://servicestack.net/pricing para más detalles.
Los contribuyentes deben aprobar el acuerdo de licencia de contribuyentes antes de revisar cualquier código, consulte los documentos contribuyentes para obtener más detalles. Todas las contribuciones deben incluir pruebas que verifiquen el comportamiento deseado.
ServiceStack incluye el código fuente de las grandes bibliotecas a continuación para algunas de su funcionalidad central. Cada biblioteca se publica bajo su licencia respectiva:
Siga @Servicestack y +ServiceStack para actualizaciones del proyecto.
Muchas gracias a Github y a todos los contribuyentes de ServiceStack:
Los proyectos de NEN de código abierto similares para desarrollar o acceder a los servicios web incluyen: