AddressLookupService

<back to all web services

AddressRequest

Requires Authentication
The following routes are available for this service:
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()),
});

Dart AddressRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .json suffix or ?format=json

To embed the response in a jsonp callback, append ?callback=myCallback

HTTP + JSON

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: application/json
HTTP/1.1 200 OK
Content-Type: application/json
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"}