(Long-polling)
(/service/message)
 
(2 intermediate revisions by the same user not shown)
Line 36: Line 36:
 
'''type''' - ‘'private'’ or '‘announce'’ (for group message)<br>
 
'''type''' - ‘'private'’ or '‘announce'’ (for group message)<br>
 
'''text''' - message text in UTF-8<br>
 
'''text''' - message text in UTF-8<br>
'''interval''' - long-pull timeout in millisecods ('''optional''')
+
'''interval''' - long-poll timeout in milliseconds ('''optional''')
  
 
Long-polling mode responds to deliver a report of message delivery (check section '''Long-polling'''):
 
Long-polling mode responds to deliver a report of message delivery (check section '''Long-polling'''):
Line 51: Line 51:
  
 
In case of long-polling mode, the API will always answer with HTTP code 200, and then slowly transmit response:
 
In case of long-polling mode, the API will always answer with HTTP code 200, and then slowly transmit response:
* space character is used as a keep-alive, every 1 second
+
* Keep-alive chunks - space character
* final message:
+
* Final message:
 
** '''Success'''
 
** '''Success'''
 
** '''Failure'''
 
** '''Failure'''

Latest revision as of 20:27, 10 November 2019

Since version BrandMeister 20190421-185653 has built-in web server.

Embedded web server provides several services such as:

  • status - represent some method of [Status API]
  • service - implements several methods to send SMS and telemetry
  • health - represent some method of [Status API]

Detection of entry point

system.php provides a data of entry point of HTTP interface. Please check ‘'remote’' object, returned by system.php. Port parameter corresponds to TCP port and ‘'Secure'’ indicates using of HTTPS (or HTTP).

Status API

  • /status/system.json
  • /status/status.json
  • /status/list.json
  • /status/terminal.json
  • /status/status.msgpack
  • /status/list.msgpack
  • /status/terminal.msgpack

.json methods implement fully the same structure of data as .php version. .msgpack methods have MeasagePack-encoded data in the same order as .json version. Please check info about General Status API (.php) at API/Status.

Service API

This service API requires to use HTTP Digest Authentication, where username is an registered application ID. All requests should be sent as HTTP POST method having type application/x-www-form-urlencoded In case of success server returns HTTP code 200 or 500 in case of failure.

/service/message

source - ID to be used as a source
destination - ID of destination station or group
type - ‘'private'’ or '‘announce'’ (for group message)
text - message text in UTF-8
interval - long-poll timeout in milliseconds (optional)

Long-polling mode responds to deliver a report of message delivery (check section Long-polling):

  • Status: 8 - Success
  • Status: 64 and greater - some kind of delivery error

/service/telemetry

source - ID to be used as a source
destination - ID of destination station or group
output1 ... output8 - command for each output (same as MQTT API): 0 = None, 20 = Clear, 21 = Set, 22 = Toggle, 23 = Pulse

Long-polling

In case of long-polling mode, the API will always answer with HTTP code 200, and then slowly transmit response:

  • Keep-alive chunks - space character
  • Final message:
    • Success
    • Failure
    • Status: xxx - in case of simple numeric answer, such as SMS delivery report
    • JSON: { xxx } - in case of complex content

Health API

Objects list is available via system.php and D-BUS API.

/health/<object> or /health/<object>?action=check

Health check compatible with Consul: Code 200 - OK Code 429 - Temporary unavailable (too many connections, overflow, not active, etc.) Code 404 - Not available

/health/<object>?action=measure

Detailed metric information in JSON format

Example

  • /health/APRSGate?action=measure
  • /health/PushStick?action=measure
  • /health/SpiderStore?action=measure

Since version BrandMeister 20190421-185653 has built-in web server.

Embedded web server provides several services such as:

Detection of entry point[edit]

system.php provides a data of entry point of HTTP interface. Please check ‘'remote’' object, returned by system.php. Port parameter corresponds to TCP port and ‘'Secure'’ indicates using of HTTPS (or HTTP).

Status API[edit]

.json methods implement fully the same structure of data as .php version. .msgpack methods have MeasagePack-encoded data in the same order as .json version. Please check info about General Status API (.php) at API/Status.

Service API[edit]

This service API requires to use HTTP Digest Authentication, where username is an registered application ID. All requests should be sent as HTTP POST method having type application/x-www-form-urlencoded In case of success server returns HTTP code 200 or 500 in case of failure.

/service/message[edit]

source - ID to be used as a source
destination - ID of destination station or group
type - ‘'private'’ or '‘announce'’ (for group message)
text - message text in UTF-8
interval - long-pull timeout in millisecods (optional)

Long-polling mode responds to deliver a report of message delivery (check section Long-polling):

/service/telemetry[edit]

source - ID to be used as a source
destination - ID of destination station or group
output1 ... output8 - command for each output (same as MQTT API): 0 = None, 20 = Clear, 21 = Set, 22 = Toggle, 23 = Pulse

Long-polling[edit]

In case of long-polling mode, the API will always answer with HTTP code 200, and then slowly transmit response:

Health API[edit]

Objects list is available via system.php and D-BUS API.

/health/<object> or /health/<object>?action=check[edit]

Health check compatible with Consul: Code 200 - OK Code 429 - Temporary unavailable (too many connections, overflow, not active, etc.) Code 404 - Not available

/health/<object>?action=measure[edit]

Detailed metric information in JSON format

Example[edit]