| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
See www.servicestack.net for an overview.
Join the ServiceStack Google+ Community or follow @ServiceStack for project updates. You can catch some community members hanging out on JabbR.
Service Stack is a high-performance .NET web services platform that simplifies the development of high-performance REST (JSON, XML, JSV, HTML, MsgPack, ProtoBuf, CSV) and WCF SOAP Web Services.
Note: the source code is provided as-is - no direct or commercial support is available for ServiceStack
This example is also available as a stand-alone integration test:
//Web Service Host Configuration
public class AppHost : AppHostHttpListenerBase
{
public AppHost() : base("TODOs Tests", typeof(Todo).Assembly) {}
public override void Configure(Container container)
{
container.Register(new TodoRepository());
}
}
//REST Resource DTO
[Route("/todos")]
[Route("/todos/{Ids}")]
public class Todos : IReturn<List<Todo>>
{
public long[] Ids { get; set; }
public Todos(params long[] ids)
{
this.Ids = ids;
}
}
[Route("/todos", "POST")]
[Route("/todos/{Id}", "PUT")]
public class Todo : IReturn<Todo>
{
public long Id { get; set; }
public string Content { get; set; }
public int Order { get; set; }
public bool Done { get; set; }
}
public class TodosService : Service
{
public TodoRepository Repository { get; set; } //Injected by IOC
public object Get(Todos request)
{
return request.Ids.IsEmpty()
? Repository.GetAll()
: Repository.GetByIds(request.Ids);
}
public object Post(Todo todo)
{
return Repository.Store(todo);
}
public object Put(Todo todo)
{
return Repository.Store(todo);
}
public void Delete(Todos request)
{
Repository.DeleteByIds(request.Ids);
}
}//no code-gen required, can re-use above DTO's
var restClient = new JsonServiceClient(BaseUri);
List<Todo> all = restClient.Get(new Todos()); // Count = 0
var todo = restClient.Post(
new Todo { Content = "New TODO", Order = 1 }); // todo.Id = 1
all = restClient.Get(new Todos()); // Count = 1
todo.Content = "Updated TODO";
todo = restClient.Put(todo); // todo.Content = Updated TODO
restClient.Delete(new Todos(todo.Id));
all = restClient.Get(new Todos()); // Count = 0$.getJSON(baseUri, function(todos) {
alert(todos.length == 1);
});
var client = new JsonClient(baseUri); client.todos() .then((todos) => alert(todos.length == 1) );
That's all the application code required to create a simple REST web service.
If you have NuGet installed, the easiest way to get started is to install ServiceStack via NuGet:
ServiceStack binaries only: Minimal installation of ServiceStack containing only the core-binaries (.NET 3.5+)
ServiceStack with Razor Support: Create an empty ASP.NET Web or Console Application and (.NET 4.0+)
Note: the binary packages are provided as-is - no direct or commercial support is available for ServiceStack
The Definitive list of Example Projects, Use-Cases, Demos, Starter Templates
GitHub has disabled its download feature so currently NuGet is the best way to get ServiceStack published releases. For environments that don't have NuGet installed (e.g. OSX/Linux) you can still download the published binaries by extracting them from the published NuGet packages. The url to download a nuget package is:
http://packages.nuget.org/api/v1/package/{PackageName}/{Version}
So to get the core ServiceStack and ServiceStack.Text libs in OSX/Linux (or using gnu tools for Windows) you can just do:
wget -O ServiceStack http://packages.nuget.org/api/v1/package/ServiceStack/3.9.60 unzip ServiceStack 'lib/*' wget -O ServiceStack.Text http://packages.nuget.org/api/v1/package/ServiceStack.Text/3.9.60 unzip ServiceStack.Text 'lib/*'
which will download and extract the dlls into your local local lib/ folder.
Release notes for major releases
ServiceStack includes source code of the great libraries below for some of its core functionality. Each library is released under its respective licence:
Similar Open source .NET projects for developing or accessing web services include:
Follow @ServiceStack and +ServiceStack for project updates.
A big thanks to GitHub and all of ServiceStack's contributors:
Runs on both Mono and .NET (Live preview hosted on Mono / Ubuntu)
| Back | FazBrowse Home | New Git URL |