import 'package:servicestack/servicestack.dart';
import 'dart:typed_data';
import 'dart:collection';
class HelloResponse implements IConvertible
{
String? result;
HelloResponse({this.result});
HelloResponse.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
result = json['result'];
return this;
}
Map<String, dynamic> toJson() => {
'result': result
};
getTypeName() => "HelloResponse";
TypeContext? context = _ctx;
}
class NestedClass implements IConvertible
{
String? value;
NestedClass({this.value});
NestedClass.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
value = json['value'];
return this;
}
Map<String, dynamic> toJson() => {
'value': value
};
getTypeName() => "NestedClass";
TypeContext? context = _ctx;
}
class HelloWithNestedClass implements IConvertible
{
String? name;
NestedClass? nestedClassProp;
HelloWithNestedClass({this.name,this.nestedClassProp});
HelloWithNestedClass.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
name = json['name'];
nestedClassProp = JsonConverters.fromJson(json['nestedClassProp'],'NestedClass',context!);
return this;
}
Map<String, dynamic> toJson() => {
'name': name,
'nestedClassProp': JsonConverters.toJson(nestedClassProp,'NestedClass',context!)
};
getTypeName() => "HelloWithNestedClass";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'test.servicestack.net', types: <String, TypeInfo> {
'HelloResponse': TypeInfo(TypeOf.Class, create:() => HelloResponse()),
'NestedClass': TypeInfo(TypeOf.Class, create:() => NestedClass()),
'HelloWithNestedClass': TypeInfo(TypeOf.Class, create:() => HelloWithNestedClass()),
});
Dart HelloWithNestedClass 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 /csv/reply/HelloWithNestedClass HTTP/1.1
Host: test.servicestack.net
Accept: text/csv
Content-Type: text/csv
Content-Length: length
{"name":"String","nestedClassProp":{"value":"String"}}
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"result":"String"}