MyApp

<back to all web services

CreateProfile

Game

// @DataContract
export class IdResponse
{
    // @DataMember(Order=1)
    public id: string;

    // @DataMember(Order=2)
    public responseStatus: ResponseStatus;

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

export enum PlayerRole
{
    Leader = 'Leader',
    Player = 'Player',
    NonPlayer = 'NonPlayer',
}

export enum PlayerRegion
{
    Africa = 1,
    Americas = 2,
    Asia = 3,
    Australasia = 4,
    Europe = 5,
}

export class CreateProfile implements ICreateDb<Profile>
{
    public role: PlayerRole;
    public region: PlayerRegion;
    // @Validate(Validator="NotEmpty")
    public username: string;

    public highScore: number;
    public gamesPlayed: number;
    // @Validate(Validator="InclusiveBetween(0,100)")
    public energy: number;

    public profileUrl?: string;
    public coverUrl?: string;

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

TypeScript CreateProfile 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/CreateProfile HTTP/1.1 
Host: blazor-gallery.servicestack.net 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	role: Leader,
	region: Africa,
	username: String,
	highScore: 0,
	gamesPlayed: 0,
	energy: 0,
	profileUrl: String,
	coverUrl: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	responseStatus: 
	{
		errorCode: String,
		message: String,
		stackTrace: String,
		errors: 
		[
			{
				errorCode: String,
				fieldName: String,
				message: String,
				meta: 
				{
					String: String
				}
			}
		],
		meta: 
		{
			String: String
		}
	}
}