| POST | /v1/links/pending |
|---|
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 PostPendingLinkResponse implements IConvertible
{
// @DataMember(Name="url")
String? url;
// @DataMember(Name="productMetadata")
ProductMetadata? productMetadata;
// @DataMember(Name="domain")
String? domain;
// @DataMember(Name="code")
String? code;
// @DataMember(Name="baseDomain")
String? baseDomain;
// @DataMember(Name="baseCode")
String? baseCode;
// @DataMember(Name="responseStatus")
ResponseStatus? responseStatus;
PostPendingLinkResponse({this.url,this.productMetadata,this.domain,this.code,this.baseDomain,this.baseCode,this.responseStatus});
PostPendingLinkResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
url = json['url'];
productMetadata = JsonConverters.fromJson(json['productMetadata'],'ProductMetadata',context!);
domain = json['domain'];
code = json['code'];
baseDomain = json['baseDomain'];
baseCode = json['baseCode'];
responseStatus = JsonConverters.fromJson(json['responseStatus'],'ResponseStatus',context!);
return this;
}
Map<String, dynamic> toJson() => {
'url': url,
'productMetadata': JsonConverters.toJson(productMetadata,'ProductMetadata',context!),
'domain': domain,
'code': code,
'baseDomain': baseDomain,
'baseCode': baseCode,
'responseStatus': JsonConverters.toJson(responseStatus,'ResponseStatus',context!)
};
getTypeName() => "PostPendingLinkResponse";
TypeContext? context = _ctx;
}
// @DataContract
class PostPendingLinkRequest implements IConvertible
{
// @DataMember(Name="token")
// @ApiMember(IsRequired=true, Name="token")
String? token;
PostPendingLinkRequest({this.token});
PostPendingLinkRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
token = json['token'];
return this;
}
Map<String, dynamic> toJson() => {
'token': token
};
getTypeName() => "PostPendingLinkRequest";
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()),
'PostPendingLinkResponse': TypeInfo(TypeOf.Class, create:() => PostPendingLinkResponse()),
'PostPendingLinkRequest': TypeInfo(TypeOf.Class, create:() => PostPendingLinkRequest()),
'Uri': TypeInfo(TypeOf.Class, create:() => Uri()),
'Map<String,Uri?>': TypeInfo(TypeOf.Class, create:() => Map<String,Uri?>()),
});
Dart PostPendingLinkRequest 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.
POST /v1/links/pending HTTP/1.1
Host: api.booklinker.com
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"token":"String"}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length
{"url":"String","productMetadata":{"title":"String","author":"String","description":"String","retailer":"String"},"domain":"String","code":"String","baseDomain":"String","baseCode":"String","responseStatus":{"errorCode":"String","message":"String","stackTrace":"String","errors":[{"errorCode":"String","fieldName":"String","message":"String","meta":{"String":"String"}}],"meta":{"String":"String"}}}