Mercedes.Agency.Orchestration.API

<back to all web services

GetAddressRequest

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

PHP GetAddressRequest DTOs

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

HTTP + XML

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: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<GetAddressResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Mercedes.Agency.Orchestration.API.ServiceModel.Addresses">
  <Addresses xmlns:d2p1="http://schemas.datacontract.org/2004/07/Mercedes.Agency.API.Shared.POCO">
    <d2p1:Address>
      <d2p1:County>String</d2p1:County>
      <d2p1:Locality>String</d2p1:Locality>
      <d2p1:Postcode>String</d2p1:Postcode>
      <d2p1:Property>String</d2p1:Property>
      <d2p1:Street>String</d2p1:Street>
      <d2p1:Town>String</d2p1:Town>
    </d2p1:Address>
  </Addresses>
</GetAddressResponse>