Test

<back to all web services

HelloAllTypes

The following routes are available for this service:
All Verbs/all-types

export class SubType
{
    public id: number;
    public name: string;

    public constructor(init?: Partial<SubType>) { (Object as any).assign(this, init); }
}

export class AllTypes
{
    public id: number;
    public nullableId?: number;
    public byte: number;
    public short: number;
    public int: number;
    public long: number;
    public uShort: number;
    public uInt: number;
    public uLong: number;
    public float: number;
    public double: number;
    public decimal: number;
    public string: string;
    public dateTime: string;
    public timeSpan: string;
    public dateTimeOffset: string;
    public guid: string;
    public char: string;
    public keyValuePair: KeyValuePair<string, string>;
    public nullableDateTime?: string;
    public nullableTimeSpan?: string;
    public stringList: string[];
    public stringArray: string[];
    public stringMap: { [index: string]: string; };
    public intStringMap: { [index: number]: string; };
    public subType: SubType;

    public constructor(init?: Partial<AllTypes>) { (Object as any).assign(this, init); }
}

export class Poco
{
    public name: string;

    public constructor(init?: Partial<Poco>) { (Object as any).assign(this, init); }
}

export class AllCollectionTypes
{
    public intArray: number[];
    public intList: number[];
    public stringArray: string[];
    public stringList: string[];
    public floatArray: number[];
    public doubleList: number[];
    public byteArray: string;
    public charArray: string[];
    public decimalList: number[];
    public pocoArray: Poco[];
    public pocoList: Poco[];
    public pocoLookup: { [index: string]: Poco[]; };
    public pocoLookupMap: { [index: string]: { [index:string]: Poco; }[]; };

    public constructor(init?: Partial<AllCollectionTypes>) { (Object as any).assign(this, init); }
}

export class HelloAllTypes
{
    public name: string;
    public allTypes: AllTypes;
    public allCollectionTypes: AllCollectionTypes;

    public constructor(init?: Partial<HelloAllTypes>) { (Object as any).assign(this, init); }
}

export class HelloAllTypesResponse
{
    public result: string;
    public allTypes: AllTypes;
    public allCollectionTypes: AllCollectionTypes;

    public constructor(init?: Partial<HelloAllTypesResponse>) { (Object as any).assign(this, init); }
}

TypeScript HelloAllTypes DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /all-types HTTP/1.1 
Host: test.servicestack.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	name: String,
	allTypes: 
	{
		id: 0,
		nullableId: 0,
		byte: 0,
		short: 0,
		int: 0,
		long: 0,
		uShort: 0,
		uInt: 0,
		uLong: 0,
		float: 0,
		double: 0,
		decimal: 0,
		string: String,
		dateTime: 0001-01-01,
		timeSpan: PT0S,
		dateTimeOffset: 0001-01-01T00:00:00.0000000+00:00,
		guid: 00000000000000000000000000000000,
		char: ,
		keyValuePair: 
		{
			key: String,
			value: String
		},
		nullableDateTime: 0001-01-01,
		nullableTimeSpan: PT0S,
		stringList: 
		[
			String
		],
		stringArray: 
		[
			String
		],
		stringMap: 
		{
			String: String
		},
		intStringMap: 
		{
			0: String
		},
		subType: 
		{
			id: 0,
			name: String
		}
	},
	allCollectionTypes: 
	{
		intArray: 
		[
			0
		],
		intList: 
		[
			0
		],
		stringArray: 
		[
			String
		],
		stringList: 
		[
			String
		],
		floatArray: 
		[
			0
		],
		doubleList: 
		[
			0
		],
		byteArray: AA==,
		charArray: 
		[
			
		],
		decimalList: 
		[
			0
		],
		pocoArray: 
		[
			{
				name: String
			}
		],
		pocoList: 
		[
			{
				name: String
			}
		],
		pocoLookup: 
		{
			String: 
			[
				{
					name: String
				}
			]
		},
		pocoLookupMap: 
		{
			String: 
			[
				{
					String: 
					{
						name: String
					}
				}
			]
		}
	}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	result: String,
	allTypes: 
	{
		id: 0,
		nullableId: 0,
		byte: 0,
		short: 0,
		int: 0,
		long: 0,
		uShort: 0,
		uInt: 0,
		uLong: 0,
		float: 0,
		double: 0,
		decimal: 0,
		string: String,
		dateTime: 0001-01-01,
		timeSpan: PT0S,
		dateTimeOffset: 0001-01-01T00:00:00.0000000+00:00,
		guid: 00000000000000000000000000000000,
		char: ,
		keyValuePair: 
		{
			key: String,
			value: String
		},
		nullableDateTime: 0001-01-01,
		nullableTimeSpan: PT0S,
		stringList: 
		[
			String
		],
		stringArray: 
		[
			String
		],
		stringMap: 
		{
			String: String
		},
		intStringMap: 
		{
			0: String
		},
		subType: 
		{
			id: 0,
			name: String
		}
	},
	allCollectionTypes: 
	{
		intArray: 
		[
			0
		],
		intList: 
		[
			0
		],
		stringArray: 
		[
			String
		],
		stringList: 
		[
			String
		],
		floatArray: 
		[
			0
		],
		doubleList: 
		[
			0
		],
		byteArray: AA==,
		charArray: 
		[
			
		],
		decimalList: 
		[
			0
		],
		pocoArray: 
		[
			{
				name: String
			}
		],
		pocoList: 
		[
			{
				name: String
			}
		],
		pocoLookup: 
		{
			String: 
			[
				{
					name: String
				}
			]
		},
		pocoLookupMap: 
		{
			String: 
			[
				{
					String: 
					{
						name: String
					}
				}
			]
		}
	}
}