| GET | /v1/shortlink/metadata |
|---|
import 'package:servicestack/servicestack.dart';
// @DataContract
class ProductMetadata extends ProductMetadata implements IConvertible
{
ProductMetadata();
ProductMetadata.fromJson(Map<String, dynamic> json) : super.fromJson(json);
fromMap(Map<String, dynamic> json) {
super.fromMap(json);
return this;
}
Map<String, dynamic> toJson() => super.toJson();
getTypeName() => "ProductMetadata";
TypeContext? context = _ctx;
}
// @DataContract
class Destination implements IConvertible
{
// @DataMember(Name="isSuggestion")
bool? isSuggestion;
// @DataMember(Name="isAutoSuggestion")
bool? isAutoSuggestion;
// @DataMember(Name="destinationUrl")
String? destinationUrl;
// @DataMember(Name="replacementButton")
String? replacementButton;
Destination({this.isSuggestion,this.isAutoSuggestion,this.destinationUrl,this.replacementButton});
Destination.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
isSuggestion = json['isSuggestion'];
isAutoSuggestion = json['isAutoSuggestion'];
destinationUrl = json['destinationUrl'];
replacementButton = json['replacementButton'];
return this;
}
Map<String, dynamic> toJson() => {
'isSuggestion': isSuggestion,
'isAutoSuggestion': isAutoSuggestion,
'destinationUrl': destinationUrl,
'replacementButton': replacementButton
};
getTypeName() => "Destination";
TypeContext? context = _ctx;
}
// @DataContract
class GetShortLinkMetadataResponse implements IConvertible
{
// @DataMember(Name="baseCode")
String? baseCode;
// @DataMember(Name="domain")
String? domain;
// @DataMember(Name="code")
String? code;
// @DataMember(Name="productMetadata")
ProductMetadata? productMetadata;
// @DataMember(Name="destinations")
List<Destination>? destinations;
// @DataMember(Name="responseStatus")
ResponseStatus? responseStatus;
GetShortLinkMetadataResponse({this.baseCode,this.domain,this.code,this.productMetadata,this.destinations,this.responseStatus});
GetShortLinkMetadataResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
baseCode = json['baseCode'];
domain = json['domain'];
code = json['code'];
productMetadata = JsonConverters.fromJson(json['productMetadata'],'ProductMetadata',context!);
destinations = JsonConverters.fromJson(json['destinations'],'List<Destination>',context!);
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'baseCode': baseCode,
'domain': domain,
'code': code,
'productMetadata': JsonConverters.toJson(productMetadata,'ProductMetadata',context!),
'destinations': JsonConverters.toJson(destinations,'List<Destination>',context!),
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "GetShortLinkMetadataResponse";
TypeContext? context = _ctx;
}
// @DataContract
class GetShortLinkMetadataRequest implements IConvertible
{
// @DataMember(Name="domain")
String? domain;
// @DataMember(Name="code")
String? code;
GetShortLinkMetadataRequest({this.domain,this.code});
GetShortLinkMetadataRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
domain = json['aliasDomain'];
code = json['aliasCode'];
return this;
}
Map<String, dynamic> toJson() => {
'domain': domain,
'code': code
};
getTypeName() => "GetShortLinkMetadataRequest";
TypeContext? context = _ctx;
}
// @DataContract
abstract class ProductMetadata
{
// @DataMember(Name="title")
String? title;
// @DataMember(Name="author")
String? author;
// @DataMember(Name="url")
Uri? url;
// @DataMember(Name="description")
String? description;
// @DataMember(Name="retailer")
String? retailer;
// @DataMember(Name="productImages")
Map<String,Uri?>? productImages;
ProductMetadata({this.title,this.author,this.url,this.description,this.retailer,this.productImages});
ProductMetadata.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
title = json['title'];
author = json['author'];
url = JsonConverters.fromJson(json['url'],'Uri',context!);
description = json['description'];
retailer = json['retailer'];
productImages = JsonConverters.fromJson(json['productImages'],'Map<String,Uri?>',context!);
return this;
}
Map<String, dynamic> toJson() => {
'title': title,
'author': author,
'url': JsonConverters.toJson(url,'Uri',context!),
'description': description,
'retailer': retailer,
'productImages': JsonConverters.toJson(productImages,'Map<String,Uri?>',context!)
};
getTypeName() => "ProductMetadata";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'api.booklinker.com', types: <String, TypeInfo> {
'ProductMetadata': TypeInfo(TypeOf.Class, create:() => ProductMetadata()),
'Destination': TypeInfo(TypeOf.Class, create:() => Destination()),
'GetShortLinkMetadataResponse': TypeInfo(TypeOf.Class, create:() => GetShortLinkMetadataResponse()),
'List<Destination>': TypeInfo(TypeOf.Class, create:() => <Destination>[]),
'GetShortLinkMetadataRequest': TypeInfo(TypeOf.Class, create:() => GetShortLinkMetadataRequest()),
'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
'Map<String,Uri?>': TypeInfo(TypeOf.Class, create:() => Map<String,Uri?>()),
});
Dart GetShortLinkMetadataRequest DTOs
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 /v1/shortlink/metadata HTTP/1.1 Host: api.booklinker.com Accept: text/csv
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"baseCode":"String","domain":"String","code":"String","productMetadata":{"title":"String","author":"String","description":"String","retailer":"String"},"destinations":[{"isSuggestion":false,"isAutoSuggestion":false,"destinationUrl":"String","replacementButton":"String"}],"responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}