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

ym-project/actix-msgpack

Repository files navigation

actix-msgpack

Msgpack payload extractor for Actix Web.

Installation

cargo add actix-msgpack

Documentation

Example

use actix_msgpack::MsgPack;
use actix_web::{post, App, HttpResponse, HttpServer, Responder};
use serde::Deserialize;
#[derive(Debug, Deserialize)]
struct Data {
 payload: String,
}
#[post("/")]
async fn index(data: MsgPack<Data>) -> impl Responder {
 println!("payload: {}", data.payload);
 HttpResponse::Ok().finish()
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
 HttpServer::new(|| {
 App::new().service(index)
 })
 .bind(("127.0.0.1", 8080))?
 .run()
 .await
}

You can set settings:

use actix_msgpack::MsgPackConfig;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
 HttpServer::new(|| {
 let mut config = MsgPackConfig::default();
 // set max limit in bytes (default is 256kb)
 config.limit(1024); // 1kb
 // set error handler
 config.error_handler(|err, _req| {
 InternalError::from_response(err, HttpResponse::BadRequest().finish()).into()
 });
 // set allowed content-type (default is application/msgpack)
 config.content_type(|mime_type| mime_type == mime::APPLICATION_JSON)
 App::new().app_data(Data::new(config)).service(index)
 })
 .bind(("127.0.0.1", 8080))?
 .run()
 .await
}

You can use responder:

use actix_msgpack::MsgPackResponseBuilder;
#[derive(Serialize)]
struct Data {
 payload: bool,
}
#[post("/")]
async fn index() -> HttpResponse {
 let payload = Data { payload: true };
 HttpResponse::Ok().msgpack(payload)
}

License

This project is licensed under of MIT license (LICENSE or https://opensource.org/licenses/MIT)

About

Msgpack payload extractor for Actix Web.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

Languages

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