= nng_http_handler_set_tree(3http) // Copyright 2020 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // Copyright 2020 Dirac Research // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. == NAME nng_http_handler_set_tree - set HTTP handler to match trees == SYNOPSIS [source,c] ---- #include #include int nng_http_handler_set_tree(nng_http_handler *handler); int nng_http_handler_set_tree_exclusive(nng_http_handler *handler); ---- == DESCRIPTION The `nng_http_handler_set_tree()` function causes the _handler_ to be matched if the request URI sent by the client is a logical child of the path for _handler_, and no more specific _handler_ has been registered. The `nng_http_handler_set_tree_exclusive()` function is similar to `nng_http_server_set_tree()` with the distinction that the _handler_ will be considered to *exclusively* handle its request URI. Unlike `nng_http_server_set_tree()`, it will not be possible to register additional handlers in logical subdirectories of _handler_. This is useful in cases when the handler would like to examine the entire path and possibly behave differently; for example a REST API that uses the rest of the path to pass additional parameters. TIP: These methods are useful when constructing API handlers where a single service address (path) supports dynamically generated children. TIP: The non-exclusive form is also useful for providing a default handler to be generated when a more specific child does not exist. This can provide a better experience for users than the standard 404 error handling. == RETURN VALUES This function returns 0 on success, and non-zero otherwise. == ERRORS [horizontal] `NNG_ENOMEM`:: Insufficient free memory exists. `NNG_ENOTSUP`:: No support for HTTP in the library. == SEE ALSO [.text-left] xref:nng_http_handler_alloc.3http.adoc[nng_http_handler_alloc(3http)], xref:nng_http_server_add_handler.3http.adoc[nng_http_server_add_handler(3http)], xref:nng_http_req_get_method.3http.adoc[nng_http_req_get_method(3http)], xref:nng.7.adoc[nng(7)]