import Foundation
import ServiceStack
public class HelloWithEnum : Codable
{
public var enumProp:EnumType
public var enumTypeFlags:EnumTypeFlags
public var enumWithValues:EnumWithValues
public var nullableEnumProp:EnumType?
public var enumFlags:EnumFlags
public var enumAsInt:EnumAsInt
public var enumStyle:EnumStyle
public var enumStyleMembers:EnumStyleMembers
required public init(){}
}
public enum EnumType : String, Codable
{
case Value1
case Value2
case Value3
}
// @Flags()
public enum EnumTypeFlags : Int, Codable
{
case Value1 = 0
case Value2 = 1
case Value3 = 2
}
public enum EnumWithValues : String, Codable
{
case None
case Value1
case Value2
}
// @Flags()
public enum EnumFlags : Int, Codable
{
case Value0 = 0
case Value1 = 1
case Value2 = 2
case Value3 = 4
case Value123 = 7
}
public enum EnumAsInt : Int, Codable
{
case Value1 = 1000
case Value2 = 2000
case Value3 = 3000
}
public enum EnumStyle : String, Codable
{
case lower
case UPPER
case PascalCase
case camelCase
case camelUPPER
case PascalUPPER
}
public enum EnumStyleMembers : String, Codable
{
case Lower
case Upper
case PascalCase
case CamelCase
case CamelUpper
case PascalUpper
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .other suffix or ?format=other
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /jsonl/oneway/HelloWithEnum HTTP/1.1
Host: test.servicestack.net
Accept: text/jsonl
Content-Type: text/jsonl
Content-Length: length
{"enumProp":"Value1","enumTypeFlags":0,"enumWithValues":"None","nullableEnumProp":"Value1","enumFlags":0,"enumAsInt":"Value1","enumStyle":"lower","enumStyleMembers":"lower"}