WebtoB Admin API
WebtoB provides management features through the Admin API using Rest API. A port can be specified in the /server/admin settings, and API communication is performed through that port.
The admin settings in config are configured as follows. In the following example settings, Admin API communication is possible on port 9090.
"server":{ "admin": { "port": 9090 } }
The following describes the APIs provided by the Admin API.
API | Description |
---|---|
Displays environment configuration settings. |
|
Reloads the config file to dynamically apply settings. |
|
Checks the connected web browser. |
|
Displays connection information. |
|
Checks server group information. |
|
Retrieves statistics about the state of processes, threads, and services. |
|
Resets statistics for the server process. |
|
Shuts down WebtoB. |
|
Displays information about responses stored in the HTTP response cache. |
|
Deletes responses stored in the HTTP response cache. |
The main features of WebtoB Admin API are as follows:
-
All APIs communicate using the POST method.
-
For APIs operating on HTH, if there is no response from HTH for a certain period of time, it will be displayed as 'busy_hth' after a timeout. For example, if HTH-1 and HTH-2 do not respond within the timeout period for the /cliinfo API, the information will be displayed as 'busy_hth' as shown in the following example.
{ "result": { "HTH-0": [ { ... } ] }, "busy_hth": [ "HTH-1", "HTH-2" ] }
-
If the API operates correctly, it returns HTTP response code 200, otherwise it returns an appropriate response code depending on the situation.
The following describes common error response codes.
Response Code Description 400
Failed to validate JSON schema for HTTP body.
401
User authentication failed.
403
No permission to perform actions on the requested API.
404
Requested API not found.
405
Invalid method used for the request.
500
An error occurred during API operation. (The specific error and message differ depending on the API)
-
If the response code is not 200, it is commonly structured as follows:
{ "error_code": string, "error_message": string }
For example, a response code of 404 may appear as follows:
{ "error_code": "APIERR_COMMON_0003", "error_message": "No such API" }
Environment Information
/config
Retrieves the environment information of the currently running system. This process allows you to check not only the values specified in the environment settings file but also the values applied by default.
-
Usage
{ "path": string }
Option Description Path
Specifies the JSON path to the environment configuration file. The path must always start with '/'.
If the path is omitted or set to '/', all currently configured settings will be retrieved. -
Example
The following is an example of checking the NODE section environment settings with the "/config" Admin API. For detailed information of the configuration items in the NODE section, refer to Configuration Items.
[Request] { "path": "/node" } [Response] { "result": { "cache_entry": 128, "cache_key": "HOST_URI", "cache_max_file_size": 8192, "connection_pool_size": 8192, "graceful_shutdown_timeout": 5, "hth_count": 1, "hth_schedule": "RR", "limit_request_body_size": 0, "limit_request_header_field_count": 100, "limit_request_header_field_size": 8190, "limit_request_line_size": 8190, "listen_backlog": 4096, "max_cache_memory_size": 100, "name": "webtob-server", "system_filters": [], "worker_threads": 1 } }
/updateconfig
Reloads the config file to dynamically apply the settings. However, only the settings specified with the '|dynamic|' key in the schema file will be applied.
-
Usage
This API does not require any separate parameters.
-
Example
The following is an example of updating the settings with the "/updateconfig" Admin API after modifying the config file.
[Request] { } [Response] { }
Action State Information
/cliinfo
Displays the environment settings, such as the current status, IP address, number of processed requests, of the currently connected client (usually a web browser).
-
Usage
{ "http_server": string, "virtual_host": string, "hth_number": integer }
Option Description None
Retrieves information about all clients connected to the server.
http_server
Retrieves information about clients connected to the specified HTTP server.
virtual_host
Retrieves information about the clients connected to the specified virtual host. This option can only be set if http_server is set, and the value must be a virtual host name included in the http_server.
hth_number
Retrieves information about clients connected to the specified HTH. If not specified, information for all HTHs will be retrieved.
-
Example
The following is an example of checking the client information connected to the vhost1 virtual host in HTH 3 using the "/cliinfo" Admin API.
[Request] { "http_server": "http1", "virtual_host": "vhost1", "hth_number": 3 } [Response] { "result": { "HTH-3": [ { "no": 1, "idle": 24, "local_ipaddr:port": "192.168.15.167:8080", "remote_ipaddr:port": "192.168.15.168:48006", "request_count": 0, "response_count": 0, "ssl": false, "status": "READY", "http_server": "http1", "virtual_host": "vhost1" }, { "no": 0, "idle": 24, "local_ipaddr:port": "192.168.15.167:8080", "remote_ipaddr:port": "192.168.15.168:48005", "request_count": 2, "response_count": 2, "ssl": false, "status": "READY", "http_server": "http1", "virtual_host": "vhost1" } ] } }
The following describes each output item.
Item Description no
The connection number managed internally by WebtoB.
idle
Client idle time with no data exchanges.
local_ipaddr:port,
remote_ipaddr:portIP address and port number of the server and client.
request_count
The number of requests sent by the client.
response_count
The number of responses sent to the client.
ssl
Specifies whether the client is using an SSL connection.
status
Client state within the server.
-
CONNECTING: Trying to connect.
-
CONNECTED: Connection established.
-
READY: Receiving requests from the client.
-
RUNNING: A client request is being processed on the server.
-
DISCONNECTING: Attempting to terminate the connection.
-
DISCONNECTED: Connection terminated.
http_server
The HTTP server that the client connected to.
virtual_host
The last virtual host accessed by the client.
-
/connectioninfo
Displays the environment settings, such as the current status, IP address, number of processed requests, of the currently connected client (usually a web browser) and server.
-
Usage
{ "hth_number": integer }
Option Description None
Retrieves information about all clients connected to WebtoB.
hth_number
Retrieves information about clients and servers connected to the specified HTH. If not specified, information for all HTHs is retrieved.
-
Example
The following is an example of checking the client and server information connected to HTH 3 using the "/connectioninfo" Admin API.
[Request] { "hth_number": 3 } [Response] { "result": { "HTH-3": [ { "acceptor": "WJP-0", "request_count": 1, "response_count": 1, "counterpart": "", "idle": 3, "local_ipaddr:port": "127.0.0.1:9999", "no": 0, "remote_ipaddr:port": "127.0.0.1:44866", "remote_type": "JSV", "ssl": false, "status": "READY", "virtual_host": "" }, { "acceptor": "http1", "request_count": 2, "response_count": 2, "counterpart": "", "idle": 2, "local_ipaddr:port": "192.168.15.167:8080", "no": 10, "remote_ipaddr:port": "192.168.15.168:64223", "remote_type": "CLIENT", "ssl": false, "status": "READY", "virtual_host": "" }, { "acceptor": "", "request_count": 1, "response_count": 1, "counterpart": "", "idle": 2, "local_ipaddr:port": "192.168.15.167:60504", "no": 11, "remote_ipaddr:port": "192.168.15.124:8080", "remote_type": "RPROXY", "ssl": false, "status": "READY", "virtual_host": "" } ] } }
The following describes each output item.
Item Description no
The connection number managed internally by WebtoB.
idle
Idle time with no data exchanges.
local_ipaddr:port,
remote_ipaddr:portIP address and port number of the server and client.
request_count
The number of requests sent through this connection.
response_count
The number of responses sent through this connection.
ssl
Specifies whether the connection is established using SSL.
status
Client state within the server.
-
CONNECTING: Trying to connect.
-
CONNECTED: Connection established.
-
READY: Receiving requests from the client.
-
RUNNING: A client request is being processed on the server.
-
DISCONNECTING: Attempting to terminate the connection.
-
DISCONNECTED: Connection terminated.
acceptor
The server that this connection is connected to.
virtual_host
The last virtual host accessed by this connection. (Applies only to clients)
counterpart
The number of the counterpart to this connection. If the current connection is a client, the counterpart refers to a server connection, and vice versa. For queued WJP connection, it may be displayed as -1.
-
/svginfo
Displays information about each server group that is currently running.
-
Usage
{ "jeus" : array(string), "rproxy" : array(string) }
Option Description None
Displays information about all server groups.
jeus
Specifies the JEUS server group name. Including "*" displays information for all server groups.
rproxy
Specifies the reverse proxy group name. Including "*" displays information for all server groups.
-
Example
The following is an example of checking information for all JEUS server groups and the reverse proxy group named rproxy1 using the "/svginfo" Admin API.
[Request] { "jeus" : [*], "rproxy" : ["rproxy1"] } [Response] "result": [ { "HTH-0": { "jeus": [ { "aqcnt": 0, "count": 0, "cqcnt": 0, "qpcnt": 0, "reqs": 0, "rscnt": 0, "status": "NRDY", "svgname": "MyGroup2" }, { "aqcnt": 0, "count": 0, "cqcnt": 0, "qpcnt": 0, "reqs": 0, "rscnt": 0, "status": "NRDY", "svgname": "MyGroup1" } ], "rproxy": [ { "aqcnt": 0, "count": 0, "cqcnt": 0, "qpcnt": 0, "reqs": 0, "rscnt": 0, "status": "RDY", "svgname": "rproxy1" } ] } } ]
The following describes each output item.
Item Description aqcnt
Cumulative number of queued requests. (Cumulative cqcnt value)
count
Number of processed requests.
cqcnt
Number of requests in the queue.
qpcnt
Number of queued requests that have been removed from the queue due to request timeout, qp command, etc.
reqs
Number of requests sent to the server.
rscnt
Number of server restarts due to abnormal termination.
status
Client state within the server.
-
RDY: Request can be processed. There are server processes connected to WebtoB.
-
NRDY: Request cannot be processed. There are no server processes connected to WebtoB.
-
BLK: Server is suspended by administrator command. Request cannot be processed.
svgname
Server group name specified in configuration.
-
/statinfo
Displays statistics on the running processes and services of the currently running server.
You can check dynamic information such as the number of services processed by each server and the number of connections.
-
Usage
{ "hth_number" : integer, "target":{ "jeus": array(string), "rproxy" : array(string), "htmls": boolean } }
Option Description hth_number
Specifies the HTH number for which to check statistics.
target/jeus
Specifies the JSV server for which to display statistical information. If "*" is included, information for all JSV servers is displayed.
target/rproxy
Specifies the reverse proxy server for which to display server status. If '*' is included, information for all reverse proxy servers is displayed.
target/htmls
Specifies whether to display HTMLS statistical information.
At least one item must be specified under 'target'.
-
Example
The following is an example of checking information for the JEUS server called MyGroup1, the server in the reverse proxy group called rproxy1, and the HTMLS server using the "/statinfo" Admin API.
[Request] { "hth_number" : 1, "target":{ "jeus": ["MyGroup1"], "rproxy" : ["rproxy1"], "htmls": true } } [Response] { "result": { "HTH-0": { "jeus": [ { "average_processed_time": 0.0, "connections": 50, "request_count": 0, "response_count": 0, "server": "amV1c19kb21haW4vc2VydmVyMQ==", "server_group": "MyGroup1", "sticky_routed_count": 0 } ], "rproxy": [ { "average_processed_time": 0.0, "connections": 0, "request_count": 0, "response_count": 0, "server": "192.168.15.167:8090", "server_group": "rproxy1", "sticky_routed_count": 0 }, { "average_processed_time": 0.0, "connections": 0, "request_count": 0, "response_count": 0, "server": "192.168.15.167:8088", "server_group": "rproxy1", "sticky_routed_count": 0 } ], "htmls": { "average_processed_time": 0.000309519, "queue_count": 0, "request_count": 5, "response_count": 5, "server": "HTMLS" } } } }
The following describes each output item.
Item Description average_processed_time
The average processing time per request. (Unit: seconds)
connections
The number of connections linked to the server.
request_count
The number of requests sent to the process.
response_count
The number of requests processed by the process.
server
The name of a server belonging to the server group.
-
jeus: jengineid
-
Reverse proxy: Target server address
-
HTMLS: HTMLS (fixed)
server_group
The server group name
sticky_routed_count
The number of times the request was routed to the server based on the Sticky ID received from the client.
-
/restat
Initializes statistics of server processes. Use this command to reset a specific service or server process statistical information.
-
Usage
{ "hth_number" : integer, "target":{ "jeus": array(string), "rproxy" : array(string), "htmls": boolean } }
Option Description None
Initializes all HTHs.
hth_number
Specifies the HTH number to initialize. If not set, all HTHs are initialized.
target
Specifies the target to initialize. At least one target must be set.
target/jeus
Specifies the JEUS server to initialize. If '*' is included, all JEUS servers are initialized.
target/rproxy
Specifies the reverse proxy servers to initialize. If '*' is included, all reverse proxy servers are initialized.
target/htmls
Specifies whether to initialize HTMLS statistics.
-
Example
The following is an example of initializing statistics of a JEUS server named "MyGroup1".
[Request] { "target": { "jeus": ["MyGroup1"] } } [Response] "HTH-0": { "jeus": [ "MyGroup1" ] }
Returns the names of the targets that were successfully initialized for each HTH.
Process Shutdown
/shutdown
Shuts down the running WebtoB.
-
Usage
{ "timeout": integer }
Option Description "timeout"
Specifies the timeout for the graceful shutdown process in seconds. If WebtoB does not shut down within the specified time, it will be forcibly terminated.
If omitted, the value set in /node/graceful_shutdown_timeout is applied. -
Example
The following is an example of calling the "/shutdown" Admin API to forcibly terminate WebtoB if it hasn’t shut down after attempting a graceful shutdown for 30 seconds.
[Request] { "timeout": 30 } [Response] { "result": {} }
The response is returned immediately after WebtoB receives the command. However, the WebtoB process may still be running even after the response is received.
Cache Information Management
/cachelist
Displays the response information currently stored in WebtoB’s HTTP response cache.
-
Usage
{ "hth_number": integer }
Option Description None
Displays all cache information.
"hth_number"
Specifies the HTH number to query cache information.
-
Example
The following is an example of checking cache information for HTH 0 using the "/cachelist" Admin API. The rest of the request path is used only for internal server debugging.
[Request] { "hth_number": 0 } [Response] "result": { "HTH-0": { "cache_map": [ { "expire_time": "2023-10-25 16:35:18", "key": "192.168.15.167:8080/index.html", "size": 4312 }, { "expire_time": "2023-10-25 16:34:52", "key": "192.168.15.167:8080/favicon.ico", "size": 4507 }, { "expire_time": "2023-10-25 16:34:52", "key": "192.168.15.167:8080/4.html", "size": 219 } ], "cache_map_size": 3, "memory_usage": 9038 } }
The following describes each output item.
Item Description cache_map
Returns a key (URI) and related information managed in the cache.
cache_map/expire_time
The expiration time of the item.
cache_map/key
The URI of the item.
cache_map/size
The total size of the cache item.
cache_map_size
The number of cache items currently managed in the cache.
memory_usage
The total amount of memory used by the cache item content. (Unit: bytes).
/cacherefresh
Removes the response data from the WebtoB HTTP response cache.
-
Usage
{ "url": string, "ext": string }
Option Description None
Clears the entire cache.
url
Specifies the URL of the cache to be removed.
ext
Specifies the extension of the cache to be removed.
Only one of url or ext can be specified.
The following is an example of removing the response for "test.domain.com/test.html" from the cache using the "/cacherefresh" Admin API.
[Request] { "url": "test.domain.com/test.html" } [Response] "result": { "HTH-0": { "removed_count": 1 } }
The following describes each output item.
Item Description removed_count
The number of cache items that were removed.