| POST | /cmd/users/register |
|---|
import java.math.*
import java.util.*
import java.io.InputStream
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
open class RegisterUserAccount
{
open var id:String? = null
open var newUserDTO:NewUserDTO? = null
}
open class NewUserDTO
{
open var externalUserId:String? = null
open var credentials:LoginCredentials? = null
open var person:Person? = null
open var roles:RecordList<String>? = null
open var avatar:AvatarImage? = null
}
open class LoginCredentials
{
open var username:String? = null
open var password:String? = null
}
open class Person
{
open var name:Name? = null
open var address:Address? = null
open var dateOfBirth:Date? = null
open var contactInfo:ContactInfo? = null
}
open class Name
{
open var first:String? = null
open var last:String? = null
open var full:String? = null
}
open class Address
{
open var street:String? = null
open var city:String? = null
open var state:String? = null
open var postalCode:String? = null
open var country:Ref? = null
open var gps:GPSCoordinates? = null
@SerializedName("data") open var Data:RecordDictionary<String, String>? = null
}
open class Ref
{
open var id:String? = null
@SerializedName("val") open var Val:String? = null
}
open class GPSCoordinates
{
open var lat:Double? = null
open var lng:Double? = null
}
open class RecordDictionary<TKey, TVal> : HashMap<TKey,TVal>()
{
}
open class ContactInfo
{
open var phone:String? = null
open var email:String? = null
}
open class RecordList<T> : ArrayList<T>()
{
}
open class AvatarImage
{
open var base64:String? = null
open var tag:String? = null
}
Kotlin RegisterUserAccount DTOs
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
}
}