GET | /bookings | ||
---|---|---|---|
GET | /bookings/{Id} |
import java.math.*
import java.util.*
import net.servicestack.client.*
import com.google.gson.annotations.*
import com.google.gson.reflect.*
/**
* Find Bookings
*/
open class QueryBookings : QueryDb<Booking>()
{
var id:Int? = null
@DataMember(Order=1)
var skip:Int? = null
@DataMember(Order=2)
var take:Int? = null
@DataMember(Order=3)
var orderBy:String? = null
@DataMember(Order=4)
var orderByDesc:String? = null
@DataMember(Order=5)
var include:String? = null
@DataMember(Order=6)
var fields:String? = null
@DataMember(Order=7)
var meta:HashMap<String,String>? = null
}
open class QueryDb<T> : QueryBase()
{
@DataMember(Order=1)
var skip:Int? = null
@DataMember(Order=2)
var take:Int? = null
@DataMember(Order=3)
var orderBy:String? = null
@DataMember(Order=4)
var orderByDesc:String? = null
@DataMember(Order=5)
var include:String? = null
@DataMember(Order=6)
var fields:String? = null
@DataMember(Order=7)
var meta:HashMap<String,String> = HashMap<String,String>()
}
@DataContract
open class QueryBase
{
@DataMember(Order=1)
var skip:Int? = null
@DataMember(Order=2)
var take:Int? = null
@DataMember(Order=3)
var orderBy:String? = null
@DataMember(Order=4)
var orderByDesc:String? = null
@DataMember(Order=5)
var include:String? = null
@DataMember(Order=6)
var fields:String? = null
@DataMember(Order=7)
var meta:HashMap<String,String> = HashMap<String,String>()
}
/**
* Booking Details
*/
open class Booking : AuditBase()
{
var id:Int? = null
var name:String? = null
var roomType:RoomType? = null
var roomNumber:Int? = null
var bookingStartDate:Date? = null
var bookingEndDate:Date? = null
var cost:BigDecimal? = null
var notes:String? = null
var cancelled:Boolean? = null
@DataMember(Order=1)
var createdDate:Date? = null
@DataMember(Order=2)
@Required()
var createdBy:String? = null
@DataMember(Order=3)
var modifiedDate:Date? = null
@DataMember(Order=4)
@Required()
var modifiedBy:String? = null
@DataMember(Order=5)
var deletedDate:Date? = null
@DataMember(Order=6)
var deletedBy:String? = null
}
@DataContract
open class AuditBase
{
@DataMember(Order=1)
var createdDate:Date? = null
@DataMember(Order=2)
@Required()
var createdBy:String? = null
@DataMember(Order=3)
var modifiedDate:Date? = null
@DataMember(Order=4)
@Required()
var modifiedBy:String? = null
@DataMember(Order=5)
var deletedDate:Date? = null
@DataMember(Order=6)
var deletedBy:String? = null
}
enum class RoomType
{
Single,
Double,
Queen,
Twin,
Suite,
}
@DataContract
open class QueryResponse<Todo>
{
@DataMember(Order=1)
var offset:Int? = null
@DataMember(Order=2)
var total:Int? = null
@DataMember(Order=3)
var results:ArrayList<Todo> = ArrayList<Todo>()
@DataMember(Order=4)
var meta:HashMap<String,String> = HashMap<String,String>()
@DataMember(Order=5)
var responseStatus:ResponseStatus? = null
}
open class Todo
{
var id:Long? = null
var text:String? = null
var isFinished:Boolean? = null
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /bookings HTTP/1.1 Host: vue-vite-api.jamstacks.net Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"offset":0,"total":0,"results":[{"id":0,"name":"String","roomType":"Single","roomNumber":0,"bookingStartDate":"\/Date(-62135596800000-0000)\/","bookingEndDate":"\/Date(-62135596800000-0000)\/","cost":0,"notes":"String","cancelled":false,"createdDate":"\/Date(-62135596800000-0000)\/","createdBy":"String","modifiedDate":"\/Date(-62135596800000-0000)\/","modifiedBy":"String","deletedDate":"\/Date(-62135596800000-0000)\/","deletedBy":"String"}],"meta":{"String":"String"},"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}