Suivez @ServiceStack ou affichez les documents, utilisez Stackoverflow ou les forums clients pour l'assistance.
Consultez les notes de version pour les dernières fonctionnalités ou consultez ServiceStack.net/Features pour un aperçu.
ServiceStack est un cadre Web et des services Web complet simple, rapide, polyvalent et hautement productif qui est manifestement archited pour réduire la complexité artificielle et promouvoir les meilleures pratiques des services à distance avec une conception basée sur des messages qui permet une réutilisation maximale qui peut tirer parti d'une passerelle de service intégrée pour la création de architectures de service modulaire lâchement à couplage. Les services ServiceStack sont consommables via une gamme de formats de données rapides intégrés (inc. JSON, XML, CSV, JSV, Protobuf, Wire et MSGPACK) ainsi que XSD / WSDL pour les points de terminaison SOAP et les hôtes de lapin MQ, Redis MQ et Amazon SQS MQ.
Son focus de conception et de simplicité offre une suite inégalée de fonctionnalités de productivité qui peuvent être activées de manière déclarative sans code, de la création d'API Web entièrement interrogable avec une seule demande dactylographiée DTO avec une requête automatique en prenant en charge toutes les principales SGBDR à la prise en charge intégrée pour la messages et encourages Auto pour tous vos services existants via vos services existants.
Vos mêmes services servent également de contrôleur dans les vues de rasoir intelligentes de ServiceStack, réduisant l'effort pour servir les applications Web et une seule page ainsi que de riches clients de bureau et mobiles qui sont en mesure de fournir des expériences interactives instantanées en utilisant des événements de serveur en temps réel de ServiceStack.
Les services ServiceStack maximisent également la productivité des consommateurs fournissant une API tapée de bout en bout instantanée sans code de code permettant l'expérience de développement la plus productive pour développer .NET aux services Web .NET.
Servicestack s'intègre désormais à tous les principaux IDE utilisés pour créer les meilleures expériences natives sur les plates-formes les plus populaires afin de permettre un flux de travail de développement très productif pour consommer des services Web, faire de l'entretien de l'entretien le choix de back-end idéal pour alimenter les applications iPhone et iPad natives sur les applications iOS avec des applications de bureau Swift, mobiles et de tablette sur la plate-forme Android avec des plateformes Java, OSX de bureau ainsi que pour cibler les plateformes de PCC de Java. Xamarin.ios, xamarin.android, Windows Store, WPF, WinForms et Silverlight:
Fournir des API typées natives instantanées pour C #, TypeScript, F # et VB.NET directement dans Visual Studio pour les plates-formes .NET les plus populaires, y compris iOS et Android à l'aide de xamarin.ios et xamarin.android sur Windows.
Fournir une prise en charge des types natifs C # pour développer des applications mobiles iOS et Android à l'aide de xamarin.ios et xamarin.android avec Xamarin Studio sur OSX. Le plugin ServiceStackxs offre également une riche expérience de développement de services Web en développement d'applications clients avec mono en développement sur Linux
Fournir une API typtée native instantanée dans Swift, y compris des clients de services génériques, permettant un flux de travail hautement productif et une consommation sans effort de services Web à partir d'applications iOS et OSX natives - directement à partir de Xcode!
Fournir une API typtée native instantanée dans Java et Kotlin, y compris les clients de services génériques java idiomatiques prenant en charge les demandes de synchronisation et d'asynchrones en tirant parti des asynctasks d'Android pour permettre la création de services mobiles natifs riches en services et réactifs!
Le plugin d'idées ServiceStack est installable directement à partir du référentiel de plugin d'Intellij et permet une intégration transparente avec les projets Intellij Java Maven pour générer une API tapée pour consommer rapidement et sans effort sans effort des services Web de service à distance de clients Java ou Kotlin purement plateforme.
La productivité inégalée offerte par Java Add ServiceStack Reference est également disponible dans le plugin ServiceStackEclipse IDE qui est installable à partir du marché Eclipse pour fournir une intégration approfondie de la référence Add ServiceStack avec Eclipse Java Maven Projects permettant aux développeurs Java d'ECLIPSE ADPOSSIBLE et mettent à jour les références de leur évolution d'évolution des services Web ServiceStack à distance.
En plus de notre liste croissante d'IDE pris en charge, les scripts NPM de la ligne de commande entre Servicestack-CLI facilitent la création de serveurs, des tâches automatisées et des coureurs de commande de vos éditeurs de texte préférés pour ajouter et mettre à jour facilement les références Servicestack!
Cet exemple est également disponible en tant que test d'intégration autonome:
//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 ) ;
}
}Aucune génération de code requise, peut réutiliser les DTO du serveur ci-dessus:
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 = 0Le même code fonctionne également avec les clients Android, iOS, Xamarin.Forms, UWP et WPF.
F # et VB.NET peuvent réutiliser les mêmes clients de service .NET et 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 ;
} ) ;Utilisation de définitions de typescript avec un client HTTP angulaire:
this . http . get < GetCustomersResponse > ( createUrl ( '/customers' , request ) ) . subscribe ( r => {
this . results = r . results ;
} ) ; $ . getJSON ( baseUri + "/customers" , function ( r ) {
var results = r . results ;
} ) ;C'est tout le code d'application requis pour créer et consommer un service Web REST à base de données simples!
Si vous avez installé Nuget, le moyen le plus simple de commencer est de:
Le dernier V4 + sur Nuget est une version commerciale avec des quotas gratuits.
La liste définitive des exemples de projets, de cas d'utilisation, de démos, de modèles de démarrage
Depuis septembre 2013, le code source de ServiceStack est disponible dans le cadre de l'exception de licence publique générale / licence FOSS GNU AFERO / FOSS, voir Licence.txt dans la source. Une licence commerciale alternative est également disponible, voir https://servicestack.net/pricing pour plus de détails.
Les contributeurs doivent approuver le contrat de licence des contributeurs avant que tout code ne soit examiné, consultez les documents contributifs pour plus de détails. Toutes les contributions doivent inclure des tests vérifiant le comportement souhaité.
ServiceStack comprend le code source des grandes bibliothèques ci-dessous pour certaines de ses fonctionnalités principales. Chaque bibliothèque est libérée sous sa licence respective:
Suivez @ServiceStack et + ServiceStack pour les mises à jour du projet.
Un grand merci à GitHub et à tous les contributeurs de ServiceStack:
Des projets .NET open source similaires pour développer ou accéder aux services Web comprennent: