use dropshot::endpoint;
use dropshot::ApiDescription;
use dropshot::ConfigLogging;
use dropshot::ConfigLoggingLevel;
use dropshot::HttpError;
use dropshot::HttpResponseOk;
use dropshot::RequestContext;
use dropshot::ServerBuilder;
#[tokio::main]
async fn main() -> Result<(), String> {
let config_logging =
ConfigLogging::StderrTerminal { level: ConfigLoggingLevel::Info };
let log = config_logging
.to_logger("example-basic")
.map_err(|error| format!("failed to create logger: {}", error))?;
let mut api = ApiDescription::new();
api.register(example_api_get_header_generic).unwrap();
let api_context = ();
let server = ServerBuilder::new(api, api_context, log)
.start()
.map_err(|error| format!("failed to create server: {}", error))?;
server.await
}
#[endpoint {
method = GET,
path = "/header-example-generic",
}]
async fn example_api_get_header_generic(
rqctx: RequestContext<()>,
) -> Result<HttpResponseOk<String>, HttpError> {
let header = rqctx.request.headers().get("demo-header");
Ok(HttpResponseOk(format!("value for header: {:?}", header)))
}