| POST | /cmd/users/register |
|---|
using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using Betting.WebApi.ServiceModel;
using Betting.Common;
using Starnet.Common;
namespace Betting.Common
{
public partial class AvatarImage
{
public virtual string Base64 { get; set; }
public virtual string Tag { get; set; }
}
public partial class ContactInfo
{
public virtual string Phone { get; set; }
public virtual string Email { get; set; }
}
public partial class LoginCredentials
{
public virtual string Username { get; set; }
public virtual string Password { get; set; }
}
public partial class Name
{
public virtual string First { get; set; }
public virtual string Last { get; set; }
public virtual string Full { get; set; }
}
public partial class NewUserDTO
{
public virtual string ExternalUserId { get; set; }
public virtual LoginCredentials Credentials { get; set; }
public virtual Person Person { get; set; }
public virtual RecordList<string> Roles { get; set; }
public virtual AvatarImage Avatar { get; set; }
}
public partial class Person
{
public virtual Name Name { get; set; }
public virtual Address Address { get; set; }
public virtual DateTime? DateOfBirth { get; set; }
public virtual ContactInfo ContactInfo { get; set; }
}
}
namespace Betting.WebApi.ServiceModel
{
public partial class RegisterUserAccount
{
public virtual string Id { get; set; }
public virtual NewUserDTO NewUserDTO { get; set; }
}
}
namespace Starnet.Common
{
public partial class Address
{
public virtual string Street { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string PostalCode { get; set; }
public virtual Ref Country { get; set; }
public virtual GPSCoordinates GPS { get; set; }
public virtual RecordDictionary<string, string> Data { get; set; }
}
public partial class GPSCoordinates
{
public virtual double Lat { get; set; }
public virtual double Lng { get; set; }
}
public partial class RecordDictionary<TKey, TVal>
: Dictionary<TKey, TVal>
{
}
public partial class RecordList<T>
: List<T>
{
}
public partial class Ref
{
public virtual string Id { get; set; }
public virtual string Val { get; set; }
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /cmd/users/register HTTP/1.1
Host: api.sbbet.ath.cx
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
id: String,
newUserDTO:
{
externalUserId: String,
credentials:
{
username: String,
password: String
},
person:
{
name:
{
first: String,
last: String,
full: String String
},
address:
{
street: String,
city: String,
state: String,
postalCode: String,
country:
{
id: String,
val: String
},
gps:
{
lat: 0,
lng: 0
},
data:
{
String: String
}
},
dateOfBirth: 0001-01-01,
contactInfo:
{
phone: String,
email: String
}
},
roles:
[
String
],
avatar:
{
base64: String,
tag: String
}
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}