1
0
Fork 0
mirror of https://github.com/actix/actix-web.git synced 2024-06-12 02:09:36 +00:00
Actix Web is a powerful, pragmatic, and extremely fast web framework for Rust.
Go to file
Brandur 59244b203c Let CSRF's allowed_origin() be specified as a type supporting Into<String>
A very minor addition: I'm using this middleware on specific resources,
and given a non-static string, I often have to `clone()` already to get
a string into a closure. Take this code for example:

``` rust
let server = actix_web::server::new(move || {
    let csrf_origin_graphql = csrf_origin.clone();

    ...

    .resource("/graphql", move |r| {
	r.middleware(
	    csrf::CsrfFilter::new().allowed_origin(csrf_origin_graphql.as_str()),
	);

	r.method(Method::POST).a(graphql::handlers::graphql_post);
    })
```

Letting `allowed_origin()` take an `Into<String>` instead of `&str` would
prevent a second `clone()` in the code above, and also make the code a little
nicer to read (you eliminate the `.as_str()` above). This is a pattern that
seems to be common throughout actix-web already anyway, so it should also be
fine to have here.
2018-04-21 08:41:06 -07:00
src Let CSRF's allowed_origin() be specified as a type supporting Into<String> 2018-04-21 08:41:06 -07:00
tests add websocket empty close status test 2018-04-20 21:55:07 -04:00
tools/wsload add rustfmt config 2018-04-13 16:02:01 -07:00
.appveyor.yml remove rust_backtrace for appveyor 2018-02-04 10:48:16 -08:00
.gitignore start working on guide 2017-11-27 16:41:37 -08:00
.travis.yml move guide to separate repo; update links 2018-04-13 16:20:23 -07:00
build.rs drop skeptic 2018-04-13 16:21:57 -07:00
Cargo.toml add changelog entry 2018-04-21 07:56:11 -07:00
CHANGES.md add changelog entry 2018-04-21 07:56:11 -07:00
CODE_OF_CONDUCT.md code of conduct 2018-01-21 15:29:02 -08:00
LICENSE-APACHE add mit license 2017-12-17 10:08:44 -08:00
LICENSE-MIT spelling check 2018-03-24 09:35:52 +03:00
Makefile cleanup doc strings; prepare release 2018-04-16 09:30:59 -07:00
MIGRATION-0.4-0.5.md Update MIGRATION-0.4-0.5.md 2018-04-11 16:53:27 -07:00
README.md Update README links to use new guide 2018-04-19 18:51:01 -07:00
rustfmt.toml add rustfmt config 2018-04-13 16:02:01 -07:00

Actix web Build Status Build status codecov crates.io Join the chat at https://gitter.im/actix/actix

Actix web is a simple, pragmatic and extremely fast web framework for Rust.

Documentation & community resources

Example

extern crate actix_web;
use actix_web::{http, server, App, Path};

fn index(info: Path<(u32, String)>) -> String {
    format!("Hello {}! id:{}", info.0, info.1)
}

fn main() {
    server::new(
        || App::new()
            .route("/{id}/{name}/index.html", http::Method::GET, index))
        .bind("127.0.0.1:8080").unwrap()
        .run();
}

More examples

You may consider checking out this directory for more examples.

Benchmarks

License

This project is licensed under either of

at your option.

Code of Conduct

Contribution to the actix-web crate is organized under the terms of the Contributor Covenant, the maintainer of actix-web, @fafhrd91, promises to intervene to uphold that code of conduct.