All Verbs | /cached/orders | ||
---|---|---|---|
All Verbs | /cached/orders/page/{Page} | ||
All Verbs | /cached/customers/{CustomerId}/orders |
import Foundation
import ServiceStack
public class CachedGetOrders : IGet, Codable
{
public var page:Int?
public var customerId:String
required public init(){}
}
// @DataContract
public class OrdersResponse : Codable
{
// @DataMember
public var results:[CustomerOrder] = []
// @DataMember
public var responseStatus:ResponseStatus
required public init(){}
}
// @DataContract
public class CustomerOrder : Codable
{
// @DataMember
public var order:Order
// @DataMember
public var orderDetails:[OrderDetail] = []
required public init(){}
}
// @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 OrderDetail : Codable
{
// @DataMember
public var orderId:Int
// @DataMember
public var productId:Int
// @DataMember
public var unitPrice:Double
// @DataMember
public var quantity:Int16
// @DataMember
public var discount:Double
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 /cached/orders HTTP/1.1
Host: northwind.netcore.io
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
page: 0,
customerId: String
}
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { results: [ { order: { 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 }, orderDetails: [ { orderId: 0, productId: 0, unitPrice: 0, quantity: 0, discount: 0 } ] } ], responseStatus: { errorCode: String, message: String, stackTrace: String, errors: [ { errorCode: String, fieldName: String, message: String, meta: { String: String } } ], meta: { String: String } } }