POST | /address | Call to list addresses | POST request to search for addresses. Using Postcode and House Name/Number as input. |
---|---|---|---|
GET | /address/{Postcode} | Call to list addresses | GET request to search for addresses. Using Token, Postcode and House Name/Number as input. |
GET | /address/{Postcode}/{HouseNo} | Call to show a specific address | GET request to search for addresses. Using Token, Postcode and House Name/Number as input. |
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
# @Api(Description="This RESTful API returns UK Address data in both POST and GET. Input=Postcode(Mandatory), HouseNameorNumber=(Optional). You must provide valid authentication to make a request.")
# @ApiResponse(Description="Bad Request: Try formatting the request differently. See the /swagger-ui/ documentation for more details", StatusCode=400)
# @ApiResponse(Description="Something went wrong here. Please contact your administrator or servicedesk@uk.rapp.com for more details.", StatusCode=500)
# @ApiResponse(Description="Request Accepted", StatusCode=202)
# @ApiResponse(Description="No content returned", StatusCode=204)
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class PostcodeLookupRequest:
"""
This RESTful API returns UK Address data in both POST and GET. Input=Postcode(Mandatory), HouseNameorNumber=(Optional). You must provide valid authentication to make a request.
"""
# @ApiMember(DataType="string", Description="Using a Postcode to return addresses.", IsRequired=true, Name="Postcode")
postcode: Optional[str] = None
"""
Using a Postcode to return addresses.
"""
# @ApiMember(DataType="string", Description="Optional input value to limit the return data to a specific address.", Name="House Name or Number")
house_no: Optional[str] = None
"""
Optional input value to limit the return data to a specific address.
"""
Python PostcodeLookupRequest DTOs
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
POST /address HTTP/1.1
Host: webservices.mbukdatabase.co.uk
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length
{
Postcode: String,
HouseNo: String
}