Default routes have changed to:
/[json/xml/jsv/csv/form]/[requestreply/oneway]/[operation name]
The REST routes (AsyncRestHandler
) and the SOAP handler (AsyncSoapHandler
) are using IHttpAsyncHandler
to process requests.
{ | |
"homepage": "http://apex.run/", | |
"license": "MIT", | |
"version": "0.7.3", | |
"architecture": { | |
"32bit": { | |
"url": "https://github.com/apex/apex/releases/download/v0.7.3/apex_windows_386.exe" | |
}, | |
"64bit": { | |
"url": "https://github.com/apex/apex/releases/download/v0.7.3/apex_windows_amd64.exe" |
set shell=/bin/bash | |
set nocompatible " be iMproved | |
filetype off " required! | |
set rtp+=~/.vim/bundle/vundle/ | |
call vundle#rc() | |
" let Vundle manage Vundle | |
" required! | |
Bundle 'gmarik/vundle' |
describe 'User Administration', () -> | |
it 'Get user', req -> | |
req.get '/users' | |
.expectStatus 200 | |
.expectJSONTypes | |
id: Number, | |
username: String, | |
is_admin: Boolean | |
.expectJSON |
public interface IValitated | |
{ | |
Dictionary<string, Func<string>> Validators { get; set; } | |
} | |
public class ValidatedReactiveObject : ReactiveObject, IValitated, IDataErrorInfo | |
{ | |
public Dictionary<string, Func<string>> Validators { get; set; } | |
public ValidatedReactiveObject() |
namespace ServiceStack.Service | |
{ | |
using System; | |
using System.Collections.Concurrent; | |
using System.Collections.Generic; | |
using System.Linq; | |
using ServiceStack.Service; | |
using ServiceStack.ServiceClient.Web; | |
using ServiceStack.ServiceHost; |
Default routes have changed to:
/[json/xml/jsv/csv/form]/[requestreply/oneway]/[operation name]
The REST routes (AsyncRestHandler
) and the SOAP handler (AsyncSoapHandler
) are using IHttpAsyncHandler
to process requests.
public IAsyncService<TReq>
{
Task<object> ExecuteAsync<TReq>(TReq req);
}
public class ServiceBase<TReq> : IAsyncService<TReq>
{
Although it's been a long time between formal releases - v3.78 marks our been our biggest release ever! Mostly of a result of being too busy to prepare the release notes for all the effort that have gone into the framework (and supporting libraries) in the last 6 months :)
Today we hope to rectify this neglect with a special thanks to all the contributors that helped make this release possible. We would like to pay a special thanks to Steffen Müller @arxisos whose code and documentation contributions and support in the forums and real-time help over these last 6 months have been invaluable.
A lot of features being announced are already well known to our active user-base as they've shipped in our production release builds for months. Hopefully these notes will highlight other useful but less known features.
// Async with 200 ms timeout | |
ahall@jetsam:~$ ab -c 5 -n 2000 "http://127.0.0.1:53211/async?format=json" | |
This is ApacheBench, Version 2.3 <$Revision: 655654 $> | |
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ | |
Licensed to The Apache Software Foundation, http://www.apache.org/ | |
Benchmarking 127.0.0.1 (be patient) | |
Completed 200 requests | |
Completed 400 requests | |
Completed 600 requests |
public class TweetsService : RestServiceBase<Tweets> | |
{ | |
public ICacheClient Cache { get; set; } | |
public object OnGet(Tweets request) | |
{ | |
var tweets = this.Cache.Get<List<Tweets>>("yourkey"); | |
if(tweets == null) | |
{ | |
tweets = LoadTweetsFromExternalService(); |