Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

platformatic/http-handler

Repository files navigation

http-handler

Warning

Not yet released

A request handler framework for the http crate. It provides a Handler trait that allows for easy handling of HTTP requests and responses, along with a few extension types to store additional information about the request and response including socket information, response logs, and exceptions.

Install

cargo add http-handler

Usage

use http::{Request, Response, response::Builder as ResponseBuilder};
use http_handler::{Handler, RequestExt, ResponseExt, SocketInfo, ResponseLog, ResponseException};
struct MyHandler;
impl Handler<String> for MyHandler {
 type Error = String;
 fn handle(&self, request: Request<String>) -> Result<Response<String>, Self::Error> {
 ResponseBuilder::new()
 .status(200)
 .header("Content-Type", "text/plain")
 .body("Hello, World!".to_string())
 .map_err(|e| e.to_string())
 }
}
fn main() {
 let handler = MyHandler;
 let request = Request::builder()
 .method("GET")
 .uri("http://example.com")
 .body("".to_string())
 .unwrap();
 match handler.handle(request) {
 Ok(response) => {
 println!("Response: {:?}", response);
 }
 Err(e) => {
 eprintln!("Error: {}", e);
 }
 }
}

About

A request handling library for use with the http crate

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

AltStyle によって変換されたページ (->オリジナル) /