## httpserver : object
Add features to PostalPoint's integrated LAN HTTP API server.
**Kind**: global namespace
* [httpserver](#httpserver) : object
* [.addEndpoint(id, onCall)](#httpserver.addEndpoint)
* [.getServerPort()](#httpserver.getServerPort) ⇒ number
* [.getClientKey()](#httpserver.getClientKey) ⇒ string
* [.sendRequestToRemote(data, endpointID, serverAddress, serverPort)](#httpserver.sendRequestToRemote) ⇒ 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](#httpserver)
| Param | Type | Description |
| --- | --- | --- |
| id | string | Endpoint ID. Used in URL, for example: `http://:7678/` |
| onCall | function | Async function to call when the endpoint is called, which returns the response. |
**Example**
```js
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)
### 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)
### 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](#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. |