MyApp

<back to all web services

HelloAllTypes


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

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

export class AllTypes implements IGet
{
    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 point: string;
    // @DataMember(Name="aliasedName")
    public aliasedName: string;

    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 pocoArray: Poco[] = [];
    public pocoList: Poco[] = [];
    public nullableByteArray: number[] = [];
    public nullableByteList: number[] = [];
    public nullableDateTimeArray: string[] = [];
    public nullableDateTimeList: string[] = [];
    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 HelloAllTypesResponse
{
    public result: string;
    public allTypes: AllTypes;
    public allCollectionTypes: AllCollectionTypes;

    public constructor(init?: Partial<HelloAllTypesResponse>) { (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); }
}

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 /jsv/reply/HelloAllTypes HTTP/1.1 
Host: blazor-gallery.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
		},
		point: "0,0",
		aliasedName: String
	},
	allCollectionTypes: 
	{
		intArray: 
		[
			0
		],
		intList: 
		[
			0
		],
		stringArray: 
		[
			String
		],
		stringList: 
		[
			String
		],
		pocoArray: 
		[
			{
				name: String
			}
		],
		pocoList: 
		[
			{
				name: String
			}
		],
		nullableByteArray: 
		[
			0
		],
		nullableByteList: 
		[
			0
		],
		nullableDateTimeArray: 
		[
			0001-01-01
		],
		nullableDateTimeList: 
		[
			0001-01-01
		],
		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
		},
		point: "0,0",
		aliasedName: String
	},
	allCollectionTypes: 
	{
		intArray: 
		[
			0
		],
		intList: 
		[
			0
		],
		stringArray: 
		[
			String
		],
		stringList: 
		[
			String
		],
		pocoArray: 
		[
			{
				name: String
			}
		],
		pocoList: 
		[
			{
				name: String
			}
		],
		nullableByteArray: 
		[
			0
		],
		nullableByteList: 
		[
			0
		],
		nullableDateTimeArray: 
		[
			0001-01-01
		],
		nullableDateTimeList: 
		[
			0001-01-01
		],
		pocoLookup: 
		{
			String: 
			[
				{
					name: String
				}
			]
		},
		pocoLookupMap: 
		{
			String: 
			[
				{
					String: 
					{
						name: String
					}
				}
			]
		}
	}
}