# Httpserver - PostalPoint Plugin Development

Skip to content

# Httpserver

## httpserver : `object`

Add features to PostalPoint's integrated LAN HTTP API server.

Kind: global namespace

- httpserver : `object`
  - .addEndpoint(id, onCall)
  - .getServerPort() ⇒ `number`
  - .getClientKey() ⇒ `string`
  - .sendRequestToRemote(data, endpointID, serverAddress, serverPort) ⇒ `Promise.<Object>`

### httpserver.addEndpoint(id, onCall)

Add a custom HTTP JSON POST endpoint to the LAN HTTP API server running inside PostalPoint. Requests must be POSTed and contain a JSON body (or empty body, which will be converted to `null`).

Kind: static method of `httpserver`

Param | Type | Description
--- | --- | ---
id | `string` | Endpoint ID. Used in URL, for example: `http://<host>:7678/<id>`
onCall | `function` | Async function to call when the endpoint is called, which returns the response.

Example

    global.apis.httpserver.addEndpoint("testendpoint", async function (request) {
        if (request.abc == "123") {
            // A non-string `body` is converted to JSON before the HTTP reply is sent.
            return {body: {json: true, abc: 123}, httpcode: 200, contentType: "application/json"};
        }
        // A string `body` is sent to the client as-is using whatever contentType you specify.
        return {body: "abc", httpcode: 200, contentType: "text/plain"};
    });

### httpserver.getServerPort() ⇒ `number`

Get the local HTTP server's port number.

Kind: static method of `httpserver`

### httpserver.getClientKey() ⇒ `string`

Get the local machine's HTTP client key it uses to authenticate with other installations of PostalPoint on the LAN.

Kind: static method of `httpserver`

### httpserver.sendRequestToRemote(data, endpointID, serverAddress, serverPort) ⇒ `Promise.<Object>`

Send a HTTP request to another PostalPoint installation on the local network.

Kind: static method of `httpserver`
Returns: `Promise.<Object>` - The JSON reply.
Throws:

- `Error` When there's a network or other unrecoverable error while completing the request. Error message is a human-readable description of the problem.

Param | Type | Description
--- | --- | ---
data | `Object` | Data to encode as JSON in the request body.
endpointID | `string` | Endpoint to call.
serverAddress | `string` | `undefined` | Address of the PostalPoint server. If undefined, uses the host address configured in PostalPoint's Databases settings.
serverPort | `number` | `undefined` | Port of the PostalPoint server. If undefined, the default PostalPoint port number is used.