Skip to content

Repository files navigation

Ideal Postcodes Node.js

Node.js client for api.ideal-postcodes.co.uk

codecovDependency Statusnpm versioninstall sizeReleaseCI

@ideal-postcodes/core-node is the Node.js client for api.ideal-postcodes.co.uk

Our JavaScript client implements a common interface defined at @ideal-postcodes/core-interface.

High level client documentation can be found at core-interface.

In depth client documentation can be found at core-interface.ideal-postcodes.dev.

@ideal-postcodes/core-node is tested against all maintained, stable releases.

Links

Other JavaScript Clients

Documentation

Configuration & Usage

Install

npm install @ideal-postcodes/core-node

Instantiate

const{ Client }=require("@ideal-postcodes/core-node");// or, if applicable,import{Client}from"@ideal-postcodes/core-node"constclient=newClient({api_key: "iddqd"});

Configuration options

Use

import{lookupPostcode}from"@ideal-postcodes/core-node";constaddresses=awaitlookupPostcode({ client,postcode: "SW1A2AA"});

Catch Errors

import{lookupAddress,errors}from"@ideal-postcodes/core-node";try{awaitlookupAddress({ client,query: "10 downing street"});}catch(error){if(errorinstanceoferrors.IdpcRequestFailedError){// IdpcRequestFailedError indicates a 402 response code// Possibly the key balance has been depleted}}

Configure HTTP Agent

core-node uses got as its underlying HTTP client. The Ideal Postcodes API client can also be optionally configured with a got options object which is fed to got on every request.

Be aware this options object will overwrite any existing got HTTP request parameters.

constclient=newClient({api_key: "iddqd"},{cache: newMap,// Instantiate a cache: https://github.com/sindresorhus/got#cache-1hooks: {// Hook into HTTP responses: https://github.com/sindresorhus/got#hooksafterresponseafterResponse: response=>{modify(response);log(response);returnresponse;}},});
Proxy HTTP Requests

You can proxy requests by configuring the underlying got HTTP client.

consttunnel=require("tunnel");constclient=newClient(config,{agent: tunnel.httpOverHttp({proxy: {host: "localhost"}})});

Quickstart

The client exposes a number of simple methods to get at the most common tasks when interacting with the API. Below is a (incomplete) list of commonly used methods.

For a complete list of client methods, including low level resource methods, please see the core-interface documentation

Lookup a Postcode

Return addresses associated with a given postcode

import{lookupPostcode}from"@ideal-postcodes/core-node";constpostcode="id11qd";constaddresses=awaitlookupPostcode({ client, postcode });

Method options

Search for an Address

Return addresses associated with a given query

import{lookupAddress}from"@ideal-postcodes/core-node";constquery="10 downing street sw1a";constaddresses=awaitlookupAddress({ client, query });

Method options

Search for an Address by UDPRN

Return address for a given udprn

Invalid UDPRN will return null

import{lookupUdprn}from"@ideal-postcodes/core-node";constudprn=23747771;constaddress=awaitlookupUdprn({ client, udprn });

Method options

Test

npm test

Licence

MIT

About

Node.js client for api.ideal-postcodes.co.uk

Resources

Stars

0 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages