POST,PUT | /content/element |
---|
import Foundation
import ServiceStack
public class ContentElementSaveReq : Codable
{
public var country:String?
public var lang:String?
public var section:String?
public var element:String?
public var itemId:String?
public var content:String?
public var status:String?
required public init(){}
}
public class Content : Entity
{
public var section:String?
public var itemId:String?
public var itemCode:String?
public var country:String?
public var lang:String?
public var app:String?
public var companyId:String?
public var company:String?
public var elements:[String:String] = [:]
required public init(){ super.init() }
private enum CodingKeys : String, CodingKey {
case section
case itemId
case itemCode
case country
case lang
case app
case companyId
case company
case elements
}
required public init(from decoder: Decoder) throws {
try super.init(from: decoder)
let container = try decoder.container(keyedBy: CodingKeys.self)
section = try container.decodeIfPresent(String.self, forKey: .section)
itemId = try container.decodeIfPresent(String.self, forKey: .itemId)
itemCode = try container.decodeIfPresent(String.self, forKey: .itemCode)
country = try container.decodeIfPresent(String.self, forKey: .country)
lang = try container.decodeIfPresent(String.self, forKey: .lang)
app = try container.decodeIfPresent(String.self, forKey: .app)
companyId = try container.decodeIfPresent(String.self, forKey: .companyId)
company = try container.decodeIfPresent(String.self, forKey: .company)
elements = try container.decodeIfPresent([String:String].self, forKey: .elements) ?? [:]
}
public override func encode(to encoder: Encoder) throws {
try super.encode(to: encoder)
var container = encoder.container(keyedBy: CodingKeys.self)
if section != nil { try container.encode(section, forKey: .section) }
if itemId != nil { try container.encode(itemId, forKey: .itemId) }
if itemCode != nil { try container.encode(itemCode, forKey: .itemCode) }
if country != nil { try container.encode(country, forKey: .country) }
if lang != nil { try container.encode(lang, forKey: .lang) }
if app != nil { try container.encode(app, forKey: .app) }
if companyId != nil { try container.encode(companyId, forKey: .companyId) }
if company != nil { try container.encode(company, forKey: .company) }
if elements.count > 0 { try container.encode(elements, forKey: .elements) }
}
}
public class Entity : IEntity, Codable
{
public var id:String?
required public init(){}
}
Swift ContentElementSaveReq DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /content/element HTTP/1.1
Host: hcbtas-q-albamfs-api.azurewebsites.net
Accept: application/xml
Content-Type: application/xml
Content-Length: length
<ContentElementSaveReq xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/AlbaApi.ServiceModel">
<Content>String</Content>
<Country>String</Country>
<Element>String</Element>
<ItemId>String</ItemId>
<Lang>String</Lang>
<Section>String</Section>
<Status>String</Status>
</ContentElementSaveReq>
HTTP/1.1 200 OK Content-Type: application/xml Content-Length: length <Content xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/TasSyd.Model"> <Id xmlns="http://schemas.datacontract.org/2004/07/TasSyd.Model.Base">String</Id> <App>String</App> <Company>String</Company> <CompanyId>String</CompanyId> <Country>String</Country> <Elements xmlns:d2p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays"> <d2p1:KeyValueOfstringstring> <d2p1:Key>String</d2p1:Key> <d2p1:Value>String</d2p1:Value> </d2p1:KeyValueOfstringstring> </Elements> <ItemCode>String</ItemCode> <ItemId>String</ItemId> <Lang>String</Lang> <Section>String</Section> </Content>