@serviceStackをフォローするか、ドキュメントを表示するには、Stackoverflowまたはカスタマーフォーラムを使用してサポートを行います。
最新の機能についてはリリースノートを表示するか、概要についてはServicestack.net/Featuresを参照してください。
ServiceStackは、人工的な複雑さを軽減し、リモートサービスを促進するために思慮深く編成されているシンプルで、高速で汎用性が高く、非常に生産的なWebおよびWebサービスフレームワークであり、メッセージベースのデザインでリモートサービスを促進し、統合されたサービスゲートウェイをレバレッジできる最大の再利用を可能にします。サービスは、一連の組み込み高速データ形式(Inc。JSON、XML、CSV、JSV、ProtoBuf、Wire、MSGPack)と、SOAPエンドポイントとウサギMQ、Redis MQ、Amazon SQS MQホスト用のXSD/WSDLを介して消耗します。
その設計とSimplicity Focusは、コードなしで宣言的に有効にできる比類のない生産性機能を提供します。完全にクエリのWeb APIを作成することから、すべての主要なRDBMをサポートする自動バッチリクエストをサポートする自動クエリを使用して、既存のサービスのすべての既存のサービスの豊富なHTTP CACHINGの豊富なHTTP CACHINGを可能にします。
同じサービスは、ServiceStackのスマートかみそりビューのコントローラーとしても機能し、Webアプリとシングルページアプリの両方にサービスを提供する努力、ServiceStackのリアルタイムサーバーイベントを使用してインタラクティブエクスペリエンスを即座に提供できるリッチなデスクトップおよびモバイルクライアントも削減します。
また、ServiceStackサービスは、Code-GenなしでインスタントエンドツーエンドのタイプAPIを提供する消費者の生産性を最大化し、.NETから.NET Webサービスを開発するための最も生産的な開発エクスペリエンスを可能にします。
ServiceStackは現在、最も人気のあるプラットフォームで最高のネイティブエクスペリエンスを作成するために使用されるすべての主要IDEと統合して、Webサービスを消費するための非常に生産的な開発ワークフローを可能にし、ServiceStackを豊富なネイティブiPhoneおよびiPadアプリをIOSに電力を供給するための理想的なバックエンドの選択肢となり、Androidプラットフォームを含むAndroidプラットフォームでも、Androidプラットフォームを含むAndroidプラットフォームを含むAndroidプラットフォームを含むAndroidプラットフォームを含むAndroidプラットフォームを含みます。 Xamarin.ios、Xamarin.Android、Windows Store、WPF、Winforms、Silverlight:
Xamarin.iosとXamarin.Androidを使用してiOSやAndroidを含む最も人気のある.NETプラットフォームに、Visual StudioでC#、TypeScript、F#、VB.NETのインスタントネイティブタイプAPIを直接提供します。
Xamarin.iosおよびXamarin.Androidを使用して、OSXのXamarin Studioを使用して、iOSおよびAndroidモバイルアプリの開発にC#ネイティブタイプのサポートを提供します。 Servicestackxsプラグインは、Linux上のMono Developでクライアントアプリケーションを開発するリッチなWebサービス開発エクスペリエンスも提供します
SwiftでインスタントネイティブのタイプAPIを提供するジェネリックサービスクライアントを含む、非常に生産的なワークフローを可能にし、Xcode内から直接ネイティブiOSおよびOSXアプリケーションからのWebサービスの簡単な消費を可能にします。
JavaとKotlinでインスタントネイティブのタイプAPIを提供し、Androidスタジオ内から直接Androidプラットフォームでサービスに富んだネイティブJavaまたはKotlinモバイルアプリを作成できるように、Androidの非同期をレバレバリングすることにより、同期や非同期リクエストをサポートする慣用Javaジェネリックサービスクライアントを含む。
ServiceStack Idea Pluginは、Intellijのプラグインリポジトリから直接インストールでき、Intellij Java Mavenプロジェクトとのシームレスな統合を可能にして、型のクロスプラットフォームJavaまたはKotlinのクライアントからリモートServiceStack Webサービスをすばやく簡単に消費するためのAPIを生成します。
Java Add ServiceStackリファレンスが提供する比類のない生産性は、Eclipse MarketplaceからインストールできるServiceStackEclipse IDEプラグインでも利用できます。
サポートされているIDEの成長リストに加えて、ServiceStack-CLIクロスプラットフォームコマンドラインNPMスクリプトにより、ビルドサーバー、自動タスク、お気に入りのテキストエディターのコマンドラインランナーが簡単に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 ) ;
}
}コード遺伝子は必要ありません。サーバーDTOの上に再利用できます。
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サービスクライアントと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 ;
} ) ;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 Webサービスを作成および消費するために必要なすべてのアプリケーションコードです!
Nugetをインストールしている場合、開始する最も簡単な方法は次のとおりです。
Nugetの最新のV4+は、無料のクォータを備えた商業リリースです。
例のプロジェクト、ユースケース、デモ、スターターテンプレートの決定的なリスト
2013年9月以降、ServiceStackソースコードはGNU Affero General Public License/FOSSライセンスの例外の下で入手できます。ソースのLicense.txtを参照してください。代替商業ライセンスも利用できます。詳細については、https://servicestack.net/pricingを参照してください。
貢献者は、コードがレビューされる前に、貢献者ライセンス契約を承認する必要があります。詳細については、貢献ドキュメントを参照してください。すべての貢献には、目的の動作を確認するテストを含める必要があります。
ServiceStackには、コア機能の一部について、以下のグレートライブラリのソースコードが含まれています。各ライブラリは、それぞれのライセンスに基づいてリリースされます。
プロジェクトの更新については、@servicestackと +ServiceStackをフォローしてください。
GithubとServicestackのすべての貢献者に感謝します。
Webサービスを開発またはアクセスするための同様のオープンソース.NETプロジェクトは次のとおりです。