Imports System
Imports System.IO
Imports System.Collections
Imports System.Collections.Generic
Imports System.Runtime.Serialization
Imports ServiceStack
Imports ServiceStack.DataAnnotations
Imports Test.ServiceInterface
Imports Test.ServiceModel
Namespace Global
Namespace ServiceStack
<DataContract>
Public Partial Class AuditBase
<DataMember(Order:=1)>
Public Overridable Property CreatedDate As Date
<DataMember(Order:=2)>
<Required>
Public Overridable Property CreatedBy As String
<DataMember(Order:=3)>
Public Overridable Property ModifiedDate As Date
<DataMember(Order:=4)>
<Required>
Public Overridable Property ModifiedBy As String
<DataMember(Order:=5)>
Public Overridable Property DeletedDate As Date?
<DataMember(Order:=6)>
Public Overridable Property DeletedBy As String
End Class
<DataContract>
Public Partial Class CancelRequest
Implements IPost
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Tag As String
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
<DataContract>
Public Partial Class CancelRequestResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Tag As String
<DataMember(Order:=2)>
Public Overridable Property Elapsed As TimeSpan
<DataMember(Order:=3)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=4)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class ConvertSessionToToken
Implements IPost
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property PreserveSession As Boolean
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
<DataContract>
Public Partial Class ConvertSessionToTokenResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=2)>
Public Overridable Property AccessToken As String
<DataMember(Order:=3)>
Public Overridable Property RefreshToken As String
<DataMember(Order:=4)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class EmptyResponse
<DataMember(Order:=1)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class GetAccessToken
Implements IPost
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property RefreshToken As String
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
<DataContract>
Public Partial Class GetAccessTokenResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property AccessToken As String
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=3)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class GetApiKeys
Implements IGet
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Environment As String
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
<DataContract>
Public Partial Class GetApiKeysResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Results As List(Of UserApiKey)
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=3)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class GetNavItems
<DataMember(Order:=1)>
Public Overridable Property Name As String
End Class
<DataContract>
Public Partial Class GetNavItemsResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property BaseUrl As String
<DataMember(Order:=2)>
Public Overridable Property Results As List(Of NavItem)
<DataMember(Order:=3)>
Public Overridable Property NavItemsMap As Dictionary(Of String, List(Of NavItem))
<DataMember(Order:=4)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=5)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class IdResponse
<DataMember(Order:=1)>
Public Overridable Property Id As String
<DataMember(Order:=2)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
Public Partial Class NavItem
Implements IMeta
Public Overridable Property Label As String
Public Overridable Property Href As String
Public Overridable Property Exact As Boolean?
Public Overridable Property Id As String
Public Overridable Property ClassName As String
Public Overridable Property IconClass As String
Public Overridable Property IconSrc As String
Public Overridable Property Show As String
Public Overridable Property Hide As String
Public Overridable Property Children As List(Of NavItem)
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
<DataContract>
Public Partial Class RegenerateApiKeys
Implements IPost
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Environment As String
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
<DataContract>
Public Partial Class RegenerateApiKeysResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Results As List(Of UserApiKey)
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=3)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class StringResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Result As String
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=3)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class StringsResponse
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Results As List(Of String)
<DataMember(Order:=2)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
<DataMember(Order:=3)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class UpdateEventSubscriber
Implements IPost
<DataMember(Order:=1)>
Public Overridable Property Id As String
<DataMember(Order:=2)>
Public Overridable Property SubscribeChannels As String()
<DataMember(Order:=3)>
Public Overridable Property UnsubscribeChannels As String()
End Class
<DataContract>
Public Partial Class UpdateEventSubscriberResponse
<DataMember(Order:=1)>
Public Overridable Property ResponseStatus As ResponseStatus
End Class
<DataContract>
Public Partial Class UserApiKey
Implements IMeta
<DataMember(Order:=1)>
Public Overridable Property Key As String
<DataMember(Order:=2)>
Public Overridable Property KeyType As String
<DataMember(Order:=3)>
Public Overridable Property ExpiryDate As Date?
<DataMember(Order:=4)>
Public Overridable Property Meta As Dictionary(Of String, String) Implements IMeta.Meta
End Class
End Namespace
Namespace Test.ServiceInterface
Public Partial Class DummyTypes
Public Overridable Property HelloResponses As List(Of HelloResponse)
Public Overridable Property ListResult As List(Of ListResult)
Public Overridable Property ArrayResult As ArrayResult()
Public Overridable Property CancelRequest As CancelRequest
Public Overridable Property CancelRequestResponse As CancelRequestResponse
Public Overridable Property UpdateEventSubscriber As UpdateEventSubscriber
Public Overridable Property UpdateEventSubscriberResponse As UpdateEventSubscriberResponse
Public Overridable Property GetApiKeys As GetApiKeys
Public Overridable Property GetApiKeysResponse As GetApiKeysResponse
Public Overridable Property RegenerateApiKeys As RegenerateApiKeys
Public Overridable Property RegenerateApiKeysResponse As RegenerateApiKeysResponse
Public Overridable Property UserApiKey As UserApiKey
Public Overridable Property ConvertSessionToToken As ConvertSessionToToken
Public Overridable Property ConvertSessionToTokenResponse As ConvertSessionToTokenResponse
Public Overridable Property GetAccessToken As GetAccessToken
Public Overridable Property GetAccessTokenResponse As GetAccessTokenResponse
Public Overridable Property NavItem As NavItem
Public Overridable Property GetNavItems As GetNavItems
Public Overridable Property GetNavItemsResponse As GetNavItemsResponse
Public Overridable Property EmptyResponse As EmptyResponse
Public Overridable Property IdResponse As IdResponse
Public Overridable Property StringResponse As StringResponse
Public Overridable Property StringsResponse As StringsResponse
Public Overridable Property AuditBase As AuditBase
End Class
End Namespace
Namespace Test.ServiceModel
Public Partial Class ArrayResult
Public Overridable Property Result As String
End Class
Public Partial Class HelloResponse
Public Overridable Property Result As String
End Class
Public Partial Class ListResult
Public Overridable Property Result As String
End Class
End Namespace
End Namespace
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 /jsv/oneway/DummyTypes HTTP/1.1
Host: test.servicestack.net
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
helloResponses:
[
{
result: String
}
],
listResult:
[
{
result: String
}
],
arrayResult:
[
{
result: String
}
],
cancelRequest:
{
tag: String,
meta:
{
String: String
}
},
cancelRequestResponse:
{
tag: String,
elapsed: PT0S,
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
updateEventSubscriber:
{
id: String,
subscribeChannels:
[
String
],
unsubscribeChannels:
[
String
]
},
updateEventSubscriberResponse:
{
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
getApiKeys:
{
environment: String,
meta:
{
String: String
}
},
getApiKeysResponse:
{
results:
[
{
key: String,
keyType: String,
expiryDate: 0001-01-01,
meta:
{
String: String
}
}
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
regenerateApiKeys:
{
environment: String,
meta:
{
String: String
}
},
regenerateApiKeysResponse:
{
results:
[
{
key: String,
keyType: String,
expiryDate: 0001-01-01,
meta:
{
String: String
}
}
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
userApiKey:
{
key: String,
keyType: String,
expiryDate: 0001-01-01,
meta:
{
String: String
}
},
convertSessionToToken:
{
preserveSession: False,
meta:
{
String: String
}
},
convertSessionToTokenResponse:
{
meta:
{
String: String
},
accessToken: String,
refreshToken: String,
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
getAccessToken:
{
refreshToken: String,
meta:
{
String: String
}
},
getAccessTokenResponse:
{
accessToken: String,
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
navItem:
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
}
],
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
],
meta:
{
String: String
}
},
getNavItems:
{
name: String
},
getNavItemsResponse:
{
baseUrl: String,
results:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
],
navItemsMap:
{
String:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
children:
[
{
label: String,
href: String,
exact: False,
id: String,
className: String,
iconClass: String,
iconSrc: String,
show: String,
hide: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
]
},
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
emptyResponse:
{
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
idResponse:
{
id: String,
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
stringResponse:
{
result: String,
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
},
stringsResponse:
{
results:
[
String
],
meta:
{
String: String
},
responseStatus:
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}
}
}