Plugin Helper: Http Server
The http_server
helper creates an HTTP server. This helper was introduced in v1.6.0.
It supports async-http
-based server to improve the performance. If async-http
gem is not installed, this helper uses the standard webrick
server instead.
Here is an example:
NOTE: The launched plugin itself is managed by its plugin helper which stops it automatically. No need to stop it in the stop
method.
Methods
create_http_server(title, addr:, port:, logger:, default_app: nil, &block)
(deprecated)
create_http_server(title, addr:, port:, logger:, default_app: nil, &block)
(deprecated)This method is deprecated! Use http_server_create_http_server
method instead.
http_server_create_http_server(title, addr:, port:, logger:, default_app: nil, proto: nil, tls_opts: nil, &block)
http_server_create_http_server(title, addr:, port:, logger:, default_app: nil, proto: nil, tls_opts: nil, &block)
It creates and starts an HTTP server with the given routes defined in &block
.
title
: The name of the listening thread. Must be unique!addr
: The address to listen to.port
: The port to listen to.logger
: The logger used in the server helper.default_app
: The object to handle the requests with unregistered paths. Thisobject must have a
#call
method or must be aProc
object.proto
: Protocol type. Supported values: {:tcp
,:tls
} (default::tcp
)tls_opts
: TLS options. Same as the Server Helper's
http_server_create_https_server(title, addr:, port:, logger:, default_app: nil, tls_opts: nil, &block)
http_server_create_https_server(title, addr:, port:, logger:, default_app: nil, tls_opts: nil, &block)
It creates and starts an HTTPS server with the given routes defined in &block
.
title
: The name of the listening thread. Must be unique!addr
: The address to listen to.port
: The port to listen to.logger
: The logger used in the server helper.default_app
: The object to handle the requests with unregistered paths. Thisobject must have a
#call
method or must be aProc
object.tls_opts
: TLS options. Same as the Server Helper's
Handling of other HTTP Methods
Request and Response
Request
Request supports these following methods:
query_string
: returns query string likehoge=v1&fuga=v2
query
: returns query which isquery_string
parsed byCGI.parse
body
: returns the request bodypath
: returns the request path
Response
The http_server
helper expects an array as the return value i.e.:
${response_status}
should be anInteger
${headers}
should be aHash
${body}
should be aString
ornil
Example
Here is an example of request and response in JSON format:
Plugins using http_server
http_server
If this article is incorrect or outdated, or omits critical information, please let us know. Fluentd is an open-source project under Cloud Native Computing Foundation (CNCF). All components are available under the Apache 2 License.
Last updated