1Fetch Client API

<back to all web services

CalculateDistance

The following routes are available for this service:
POST/calculatedistanceCalculate the distance between a list of coordinates

export class ApiServiceRequest implements IServiceRequest, IHasApiKey
{
    /** @description The API Key required for authentication */
    // @ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)
    public ApiKey: string;

    public constructor(init?: Partial<ApiServiceRequest>) { (Object as any).assign(this, init); }
}

export class ApiServiceResponse implements IServiceResponse
{
    /** @description Information about the response. */
    // @ApiMember(Description="Information about the response.", IsRequired=true)
    public Description: string;

    /** @description Heading or summary of the response. */
    // @ApiMember(Description="Heading or summary of the response.", IsRequired=true)
    public Heading: string;

    /** @description Did the intended operation for this response complete successfully? */
    // @ApiMember(DataType="boolean", Description="Did the intended operation for this response complete successfully?", IsRequired=true)
    public WasSuccessful: boolean;

    public constructor(init?: Partial<ApiServiceResponse>) { (Object as any).assign(this, init); }
}

export class CalculateDistanceResponse extends ApiServiceResponse
{
    /** @description A list of the distances between each point, returned in order that the points were provided */
    // @ApiMember(Description="A list of the distances between each point, returned in order that the points were provided")
    public PointDistances: number[];

    /** @description The total distance between all points */
    // @ApiMember(Description="The total distance between all points")
    public TotalDistance: number;

    public constructor(init?: Partial<CalculateDistanceResponse>) { super(init); (Object as any).assign(this, init); }
}

export class Coordinate
{
    /** @description The Latitude */
    // @ApiMember(Description="The Latitude", IsRequired=true)
    public Latitude: number;

    /** @description The Longitude */
    // @ApiMember(Description="The Longitude", IsRequired=true)
    public Longitude: number;

    public constructor(init?: Partial<Coordinate>) { (Object as any).assign(this, init); }
}

export class CalculateDistance extends ApiServiceRequest implements ILogRequest
{
    /** @description Array of coordinates */
    // @ApiMember(Description="Array of coordinates", IsRequired=true)
    public Coordinates: Coordinate[];

    public constructor(init?: Partial<CalculateDistance>) { super(init); (Object as any).assign(this, init); }
}

TypeScript CalculateDistance DTOs

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

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /calculatedistance HTTP/1.1 
Host: api.1fetch.co.za 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Coordinates: 
	[
		{
			Latitude: 0,
			Longitude: 0
		}
	],
	ApiKey: String
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	PointDistances: 
	[
		0
	],
	TotalDistance: 0,
	Description: String,
	Heading: String,
	WasSuccessful: False
}