| All Verbs | /query/orders |
|---|
import Foundation
import ServiceStack
public class QueryOrders : QueryDb<Order>
{
public var freight:Double?
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case freight
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
freight = try container.decodeIfPresent(Double.self, forKey: .freight)
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if freight != nil { try container.encode(freight, forKey: .freight) }
}
}
// @DataContract
public class Order : Codable
{
// @DataMember
public var id:Int
// @DataMember
public var customerId:String
// @DataMember
public var employeeId:Int
// @DataMember
public var orderDate:Date?
// @DataMember
public var requiredDate:Date?
// @DataMember
public var shippedDate:Date?
// @DataMember
public var shipVia:Int?
// @DataMember
public var freight:Double
// @DataMember
public var shipName:String
// @DataMember
public var shipAddress:String
// @DataMember
public var shipCity:String
// @DataMember
public var shipRegion:String
// @DataMember
public var shipPostalCode:String
// @DataMember
public var shipCountry:String
required public init(){}
}
// @DataContract
public class Customer : Codable
{
// @DataMember
public var id:String
// @DataMember
public var companyName:String
// @DataMember
public var contactName:String
// @DataMember
public var contactTitle:String
// @DataMember
public var address:String
// @DataMember
public var city:String
// @DataMember
public var region:String
// @DataMember
public var postalCode:String
// @DataMember
public var country:String
// @DataMember
public var phone:String
// @DataMember
public var fax:String
required public init(){}
}
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 /query/orders HTTP/1.1
Host: uitestapi.occupass.com
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
freight: 0,
skip: 0,
take: 0,
orderBy: String,
orderByDesc: String,
include: String,
fields: String,
meta:
{
String: String
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
offset: 0,
total: 0,
results:
[
{
id: 0,
customerId: String,
employeeId: 0,
orderDate: 0001-01-01,
requiredDate: 0001-01-01,
shippedDate: 0001-01-01,
shipVia: 0,
freight: 0,
shipName: String,
shipAddress: String,
shipCity: String,
shipRegion: String,
shipPostalCode: String,
shipCountry: String
}
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}