GET | /2.0/address/{Postcode} | ||
---|---|---|---|
GET | /2.0/address/{Postcode}/{HouseNo} |
import 'package:servicestack/servicestack.dart';
// @DataContract(Name="LookupResult", Namespace="http://schemas.datacontract.org/2004/07/PostcodeLookupService")
class LookupResult implements IConvertible
{
// @DataMember
List<Address>? Addresses;
// @DataMember
String? errormsg;
LookupResult({this.Addresses,this.errormsg});
LookupResult.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Addresses = JsonConverters.fromJson(json['Addresses'],'List<Address>',context!);
errormsg = json['errormsg'];
return this;
}
Map<String, dynamic> toJson() => {
'Addresses': JsonConverters.toJson(Addresses,'List<Address>',context!),
'errormsg': errormsg
};
getTypeName() => "LookupResult";
TypeContext? context = _ctx;
}
class AddressRequest implements IHasVersion, IConvertible
{
int? Version;
/**
* Using a Postcode to return addresses.
*/
// @ApiMember(DataType="string", Description="Using a Postcode to return addresses.", IsRequired=true, Name="Postcode", ParameterType="path")
String? Postcode;
/**
* Optional input value to limit the return data to a specific address.
*/
// @ApiMember(DataType="string", Description="Optional input value to limit the return data to a specific address.", Name="House Name or Number", ParameterType="path")
String? HouseNo;
AddressRequest({this.Version,this.Postcode,this.HouseNo});
AddressRequest.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
Version = json['Version'];
Postcode = json['Postcode'];
HouseNo = json['HouseNo'];
return this;
}
Map<String, dynamic> toJson() => {
'Version': Version,
'Postcode': Postcode,
'HouseNo': HouseNo
};
getTypeName() => "AddressRequest";
TypeContext? context = _ctx;
}
// @DataContract(Name="Address", Namespace="http://schemas.datacontract.org/2004/07/PostcodeLookupService")
class Address implements IConvertible
{
// @DataMember
String? County;
// @DataMember
int? Id;
// @DataMember
String? Locality;
// @DataMember
String? Organisation;
// @DataMember
String? Postcode;
// @DataMember
String? Property;
// @DataMember
int? RAPPPremiseId;
// @DataMember
String? Street;
// @DataMember
String? Town;
// @DataMember
String? FullAddress;
Address({this.County,this.Id,this.Locality,this.Organisation,this.Postcode,this.Property,this.RAPPPremiseId,this.Street,this.Town,this.FullAddress});
Address.fromJson(Map<String, dynamic> json) { fromMap(json); }
fromMap(Map<String, dynamic> json) {
County = json['County'];
Id = json['Id'];
Locality = json['Locality'];
Organisation = json['Organisation'];
Postcode = json['Postcode'];
Property = json['Property'];
RAPPPremiseId = json['RAPPPremiseId'];
Street = json['Street'];
Town = json['Town'];
FullAddress = json['FullAddress'];
return this;
}
Map<String, dynamic> toJson() => {
'County': County,
'Id': Id,
'Locality': Locality,
'Organisation': Organisation,
'Postcode': Postcode,
'Property': Property,
'RAPPPremiseId': RAPPPremiseId,
'Street': Street,
'Town': Town,
'FullAddress': FullAddress
};
getTypeName() => "Address";
TypeContext? context = _ctx;
}
TypeContext _ctx = TypeContext(library: 'webservices.mbukdatabase.co.uk', types: <String, TypeInfo> {
'LookupResult': TypeInfo(TypeOf.Class, create:() => LookupResult()),
'List<Address>': TypeInfo(TypeOf.Class, create:() => <Address>[]),
'Address': TypeInfo(TypeOf.Class, create:() => Address()),
'AddressRequest': TypeInfo(TypeOf.Class, create:() => AddressRequest()),
});
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 /2.0/address/{Postcode} HTTP/1.1 Host: webservices.mbukdatabase.co.uk Accept: text/csv
HTTP/1.1 200 OK Content-Type: text/csv Content-Length: length {"Addresses":[{"County":"String","Id":0,"Locality":"String","Organisation":"String","Postcode":"String","Property":"String","RAPPPremiseId":0,"Street":"String","Town":"String","FullAddress":"String, String, String, String, String, String"}],"errormsg":"String"}