GET | /v1/address/{Postcode} | Get Address by PostCode | |
---|---|---|---|
GET | /v1/address/{Postcode}/{HouseNameOrNumber} | Get Address by PostCode and Premise |
<?php namespace dtos;
use DateTime;
use Exception;
use DateInterval;
use JsonSerializable;
use ServiceStack\{IReturn,IReturnVoid,IGet,IPost,IPut,IDelete,IPatch,IMeta,IHasSessionId,IHasBearerToken,IHasVersion};
use ServiceStack\{ICrud,ICreateDb,IUpdateDb,IPatchDb,IDeleteDb,ISaveDb,AuditBase,QueryDb,QueryDb2,QueryData,QueryData2,QueryResponse};
use ServiceStack\{ResponseStatus,ResponseError,EmptyResponse,IdResponse,ArrayList,KeyValuePair2,StringResponse,StringsResponse,Tuple2,Tuple3,ByteArray};
use ServiceStack\{JsonConverters,Returns,TypeContext};
class Address implements JsonSerializable
{
public function __construct(
/** @var string */
public string $Property='',
/** @var string */
public string $Street='',
/** @var string */
public string $Town='',
/** @var string */
public string $County='',
/** @var string */
public string $Locality='',
/** @var string */
public string $Postcode=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Property'])) $this->Property = $o['Property'];
if (isset($o['Street'])) $this->Street = $o['Street'];
if (isset($o['Town'])) $this->Town = $o['Town'];
if (isset($o['County'])) $this->County = $o['County'];
if (isset($o['Locality'])) $this->Locality = $o['Locality'];
if (isset($o['Postcode'])) $this->Postcode = $o['Postcode'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Property)) $o['Property'] = $this->Property;
if (isset($this->Street)) $o['Street'] = $this->Street;
if (isset($this->Town)) $o['Town'] = $this->Town;
if (isset($this->County)) $o['County'] = $this->County;
if (isset($this->Locality)) $o['Locality'] = $this->Locality;
if (isset($this->Postcode)) $o['Postcode'] = $this->Postcode;
return empty($o) ? new class(){} : $o;
}
}
class GetAddressResponse implements JsonSerializable
{
public function __construct(
/** @var array<Address>|null */
public ?array $Addresses=null
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Addresses'])) $this->Addresses = JsonConverters::fromArray('Address', $o['Addresses']);
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Addresses)) $o['Addresses'] = JsonConverters::toArray('Address', $this->Addresses);
return empty($o) ? new class(){} : $o;
}
}
class GetAddressRequest implements IGet, JsonSerializable
{
public function __construct(
/** @var string */
public string $Postcode='',
/** @var string */
public string $HouseNameOrNumber=''
) {
}
/** @throws Exception */
public function fromMap($o): void {
if (isset($o['Postcode'])) $this->Postcode = $o['Postcode'];
if (isset($o['HouseNameOrNumber'])) $this->HouseNameOrNumber = $o['HouseNameOrNumber'];
}
/** @throws Exception */
public function jsonSerialize(): mixed
{
$o = [];
if (isset($this->Postcode)) $o['Postcode'] = $this->Postcode;
if (isset($this->HouseNameOrNumber)) $o['HouseNameOrNumber'] = $this->HouseNameOrNumber;
return empty($o) ? new class(){} : $o;
}
}
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.
GET /v1/address/{Postcode} HTTP/1.1 Host: prod-api-agency-orch-mb-dhc.rapp-customers.co.uk Accept: text/jsv
HTTP/1.1 200 OK Content-Type: text/jsv Content-Length: length { Addresses: [ { Property: String, Street: String, Town: String, County: String, Locality: String, Postcode: String } ] }