| POST, PUT | /cmd/ads |
|---|
# frozen_string_literal: true
# encoding: utf-8
require 'json'
require 'servicestack'
class Localization
include ServiceStack::DTO
# @return [String]
attr_accessor :ln
# @return [String]
attr_accessor :value
def self.properties
{
ln: { name: 'ln' },
value: { name: 'value' },
}
end
end
class Message
include ServiceStack::DTO
# @return [String]
attr_accessor :id
# @return [Dictionary]
attr_accessor :localizations
def self.properties
{
id: { name: 'id' },
localizations: { name: 'localizations', type: { String => Localization } },
}
end
end
class Advertisement
include ServiceStack::DTO
# @return [String]
attr_accessor :id
# @return [Dictionary]
attr_accessor :messages
def self.properties
{
id: { name: 'id' },
messages: { name: 'messages', type: { String => Message } },
}
end
end
class StoreAds
include ServiceStack::DTO
# @return [Advertisement]
attr_accessor :advertisement
def self.properties
{
advertisement: { name: 'advertisement', type: Advertisement },
}
end
def response_type() = ServiceStack::ResponseStatus
def get_type_name() = 'StoreAds'
end
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 /cmd/ads HTTP/1.1
Host: api.bettor.webhop.biz
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
advertisement:
{
id: String,
messages:
{
String:
{
id: String,
localizations:
{
String:
{
ln: String,
value: String
}
}
}
}
}
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length
{
errorCode: String,
message: String,
stackTrace: String,
errors:
[
{
errorCode: String,
fieldName: String,
message: String,
meta:
{
String: String
}
}
],
meta:
{
String: String
}
}