1
0
Fork 0
mirror of https://github.com/tokio-rs/axum.git synced 2025-01-19 23:33:46 +01:00
Commit graph

295 commits

Author SHA1 Message Date
David Pedersen
b1b0e45683 Remove sessions example
There are better libraries these days for doing sessions with axum. So
think this example was just causing more confusion than helping.
2023-07-01 23:12:20 +02:00
Alex Butler
26daec2b17
Update tokio-tungstenite to 0.19 ()
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-06-23 00:03:30 +02:00
David Pedersen
b7665b209a
Fix CI () 2023-06-22 23:20:46 +02:00
Jerry Wang
7208cdf795
Fix the cargo hack check () 2023-05-18 18:40:19 +00:00
David Pedersen
db300efc33
Remove impl Connected<&AddrStream> for SocketAddr () 2023-04-21 18:24:47 +02:00
David Pedersen
877e3fe4de Move TypedHeader to axum-extra ()
Co-authored-by: Michael Scofield <mscofield0@tutanota.com>
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2023-04-21 17:45:31 +02:00
David Pedersen
c97967252d Add serve function and remove Server re-export () 2023-04-21 17:45:31 +02:00
David Pedersen
6703f8634c Remove B type param: Follow ups ()
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Co-authored-by: Michael Scofield <mscofield0@tutanota.com>
2023-04-21 17:45:31 +02:00
David Pedersen
4e4c29175f Remove B type param ()
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
Co-authored-by: Michael Scofield <mscofield0@tutanota.com>
2023-04-21 17:45:31 +02:00
David Pedersen
39bb28130d
Enable println warning () 2023-04-14 22:26:56 +02:00
David Pedersen
6b106f4bab
Log built-in rejections () 2023-04-11 16:57:49 +02:00
David Pedersen
24f8dc53f4
Update rest-grpc-multiplex example to include reflection () 2023-04-01 20:49:36 +02:00
Georg Semmler
9da1897688
Add a diesel and diesel-async example ()
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-28 17:32:00 +02:00
Jonas Platte
2600c22703
Make tracing-aka-logging example more realistic () 2023-03-21 11:17:31 +01:00
David Pedersen
8e1eb8979f
Update to syn 2 () 2023-03-18 19:23:27 +00:00
Jonas Platte
dc480f7b0e
Re-integrate examples into the root workspace ()
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-10 12:02:11 +01:00
Firstyear
e7eda0e416
Add low level OpenSSL example ()
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-10 08:51:45 +00:00
Moises-Herradon-Cueto
2c1dde7c07
Fix static-file-server example instructions ()
Co-authored-by: MoisesPotato <28111500+MoisesPotato@users.noreply.github.com>
2023-03-10 09:51:22 +01:00
John Downey
db22b7309d
Remove remnants of spa feature ()
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-03-03 14:43:19 +00:00
David Pedersen
279a8e2bf0
Add example showing how to run axum on hyper 1.0 () 2023-02-26 19:05:12 +01:00
David Pedersen
1dc4b44472
Use JsonRejection::{status, body_text} in customize extractor error example () 2023-02-25 15:02:02 +01:00
David Pedersen
27f05ad32e
Remove SpaRouter () 2023-02-25 11:05:23 +01:00
David Pedersen
f726f16b6d
Update to tower-http 0.4 () 2023-02-24 20:51:30 +00:00
David Pedersen
143c415955
Add MockConnectInfo () 2023-02-17 13:09:29 +01:00
FrankReh
6d815e2b0a
Fix some comments in websockets example () 2023-01-20 14:43:47 +01:00
tottoto
b07918b213
Update to tonic 0.8 () 2023-01-20 10:34:44 +01:00
David Pedersen
00d20eb007
Simpify parse-body-based-on-content-type example () 2023-01-14 18:39:09 +01:00
Alex Pyattaev
8d92902c8e
Updated websocket example to improve clarity and to be more distinct from chat example ()
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2023-01-08 15:51:59 +00:00
David Pedersen
3d31bcb6fb Remove lingering async-graphql example file
It should have been deleted previously
2023-01-08 16:28:45 +01:00
Hans Meine
7192c590c9
add more comments to chat example () 2023-01-08 15:24:19 +00:00
Lukas Kalkhoran
71e83291e1
Fix typo () 2022-12-16 10:16:09 +00:00
tottoto
6c133be5b7
Refactor initializing tracing-subscriber in examples ()
* Refactor initializing tracing-subscriber

* Revert "Refactor initializing tracing-subscriber"

This reverts commit 0876260bf9 in favor of tracing_subscriber::registry.

* Use EnvFilter::try_from_default_env in chat example

* Use EnvFilter::try_from_default_env in examples
2022-11-30 10:46:19 +01:00
tottoto
2c74c538dd
Fix clippy warning in example () 2022-11-29 23:39:11 +00:00
David Pedersen
0b26411f39
Change Router::with_state and impl Service for Router<()> ()
* Implement `Service` for `Router<(), B>`

* wip

* wip

* fix some tests

* fix examples

* fix doc tests

* clean up docs

* changelog

* fix

* also call `with_state` when converting `MethodRouter` into a `MakeService`

* suggestions from review
2022-11-24 14:43:10 +00:00
David Pedersen
468985373a
Add example of how to test WebSockets () 2022-11-18 15:40:21 +01:00
David Pedersen
64960bb19c
Type safe state inheritance ()
* Make state type safe

* fix examples

* remove unnecessary `#[track_caller]`s

* Router::into_service -> Router::with_state

* fixup docs

* macro docs

* add missing docs

* fix examples

* format

* changelog

* Update trybuild tests

* Make sure fallbacks are still inherited for opaque services ()

* Document nesting routers with different state

* fix leftover conflicts
2022-11-18 11:02:58 +00:00
David Pedersen
2e8a7e51a1
Fix Handler::with_state not working if request body was changed via layer ()
Previously

```rust
handler.layer(RequestBodyLimitLayer::new(...)).with_state(...)
```

didn't work because we required the same request body all the way
through.
2022-11-18 11:00:52 +01:00
Konstantin Kostiuk
8d6313afa0
Add example of static-file-server using serve dir with handler as service ()
* add example of static-file-seriver using serve dit with handler as service

* update handle return type in example

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* cargo fmt fix

* change error mapping

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-11-08 20:40:20 +01:00
David Pedersen
199a7a66b8
Expand static file serving example () 2022-10-11 07:42:48 +00:00
Valentin Brandl
ee0b71a4ac
Start second server on different port for metrics endpoint ()
* Start second server on different port for metrics endpoint

* Don't track metrics on metrics server
2022-10-08 01:28:32 +02:00
Jonas Platte
a7d8954178
Use RequestPartsExt more in docs / examples ()
* Use RequestPartsExt more in docs / examples

* Remove unused import
2022-10-04 17:26:51 +00:00
Horu
a3c58a18ed
Fix typo in example () 2022-10-01 13:49:15 +00:00
Logan Keenan
31638a2b22
Add tokio feature & make tokio optional for WASM support ()
* add server feature and make tokio and hyper/server and tcp optional

* address review comments

* don't mention any specific runtimes in the example

* sort deps

* add `tokio` feature when adding `ws`

* don't always pull in tower feature that pulls in tokio io stuff

* remove usage of `tokio_cr`

* changelog

* depend on tokio version that supports wasm

* don't make it sound like tokio doesn't support wasm

* call out new default feature

Co-authored-by: Fisher Darling <fdarlingco@gmail.com>
Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-09-25 15:10:33 +00:00
Jonas Platte
4847d681b1
Allow Routers to inherit state ()
* Rename Fallback::Custom to Fallback::Service

* Allow Routers to inherit state

* Rename Router::{nest => nest_service} and add new nest method for Routers

* Fix lints

* Add basic tests for state inheritance

* Changelog
2022-09-25 11:56:23 +00:00
Marek Kuskowski
896ffc5fba
Remove ContentLengthLimit ()
* feat: remove ContentLengthLimit

* feat: remove ContentLengthLimit rejections

* fix: update multipart docs

* fix: typo

* feat: add wip extractor code

* feat: revert "feat: add wip extractor code"

* fix: update Multipart docs

* fix: update examples

* fix: missing import in an example

* fix: broken import yet again

* fix: disable default body limit for example

* fix: key value store example

* fix: update expected debug_handler output

* chore: update CHANGELOG

* Update axum/CHANGELOG.md

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-09-24 11:29:53 +00:00
Jonas Platte
69d64cecc3
Split RouterService off of Router () 2022-09-22 12:10:55 +02:00
David Pedersen
112f5354ab
Add example showing how to return anyhow::Errors () 2022-09-19 20:42:08 +00:00
David Pedersen
6d7c277700
Add example for parsing body based on Content-Type ()
* Add example for parsing body based on `Content-Type`

* format

* Update examples/parse-body-based-on-content-type/src/main.rs

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* fix copy/paste errors

* rename type params

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-08-25 16:04:54 +02:00
David Pedersen
be624306f4
Only allow last extractor to mutate the request ()
* Only allow last extractor to mutate the request

* Change `FromRequest` and add `FromRequestParts` trait ()

* Add `Once`/`Mut` type parameter for `FromRequest` and `RequestParts`

* 🪄

* split traits

* `FromRequest` for tuples

* Remove `BodyAlreadyExtracted`

* don't need fully qualified path

* don't export `Once` and `Mut`

* remove temp tests

* depend on axum again

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* Port `Handler` and most extractors ()

* Port `Handler` and most extractors

* Put `M` inside `Handler` impls, not trait itself

* comment out tuples for now

* fix lints

* Reorder arguments to `Handler` ()

I think `Request<B>, Arc<S>` is better since its consistent with
`FromRequest` and `FromRequestParts`.

* Port most things in axum-extra ()

* Port `#[derive(TypedPath)]` and `#[debug_handler]` ()

* port #[derive(TypedPath)]

* wip: #[debug_handler]

* fix #[debug_handler]

* don't need itertools

* also require `Send`

* update expected error

* support fully qualified `self`

* Implement FromRequest[Parts] for tuples ()

* Port docs for axum and axum-core ()

* Port axum-extra ()

* Port axum-extra

* Update axum-core/Cargo.toml

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* remove `impl FromRequest for Either*`

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* New FromRequest[Parts] trait cleanup ()

* Make private module truly private again

* Simplify tuple FromRequest implementation

* Port `#[derive(FromRequest)]` ()

* fix tests

* fix docs

* revert examples

* fix docs link

* fix intra docs links

* Port examples ()

* Document wrapping other extractors ()

* axum-extra doesn't need to depend on axum-core ()

Missed this in https://github.com/tokio-rs/axum/pull/1287

* Add `FromRequest` changes to changelogs ()

* Update changelog

* Remove default type for `S` in `Handler`

* Clarify which types have default types for `S`

* Apply suggestions from code review

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* remove unused import

* Rename `Mut` and `Once` ()

* fix trybuild expected output

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-08-22 12:23:20 +02:00
David Pedersen
79f6aabd02 Make extractor field public in example 2022-08-19 22:38:46 +02:00
Altair Bueno
789f51ba1a
Extend custom rejection examples ()
* examples: Created new `error-handling` example

* examples(error-handling): Add error codes and responses

* examples(error-handling): `custom_extractor`

* examples(error-handling): `derive_from_request`

* examples(error-handling): Using POST instead of GET

* examples(error-handling): Using `thiserror` for `derive_from_request`

* examples(error-handling): Using `snake-case` for routes

* revert(error-handling): Use `From` impl instead of `thiserror`

refs: 3533d96215

* examples(error-handling): Removed chrono

* examples: merged `error-handling` and `customize-extractor-error`

* examples(customize-extractor-error): Improved error codes

* examples(customize-extractor-error): rustfmt

* examples(customize-extractor-error): Removed `matched-path` feature

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* examples(customize-extractor-error): added `publish=false` to `Cargo.toml`

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* examples(customize-extractor-error): Fix env filter

* examples(customize-extractor-error): Added README

* examples(customize-extractor-error): Added `with_rejection` comments

* examples(customize-extractor-error): Added `custom_extractor` comments

* examples(customize-extractor-error):Typo on `with_rejection`

* examples(customize-extractor-error): Added `boilerplate` con to `custom_extractor`

* examples(customize-extractor-error): Added `derive_from_request` comments

* examples(customize-extractor-error): typo impossible

* examples(customize-extractor-error): typos

* examples(customize-extractor-error): replaced `extensions` with `extract`

* examples(customize-extractor-error): typo `from`

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-08-19 13:11:03 +00:00
David Pedersen
e7f1c88cd4
Always store state in an Arc ()
* Add extension and state benchmarks

* wip

* Arc the state everywhere

* don't require `S: Clone`

* fix example
2022-08-17 20:08:24 +00:00
David Pedersen
423308de3c
Add type safe state extractor ()
* begin threading the state through

* Pass state to extractors

* make state extractor work

* make sure nesting with different states work

* impl Service for MethodRouter<()>

* Fix some of axum-macro's tests

* Implement more traits for `State`

* Update examples to use `State`

* consistent naming of request body param

* swap type params

* Default the state param to ()

* fix docs references

* Docs and handler state refactoring

* docs clean ups

* more consistent naming

* when does MethodRouter implement Service?

* add missing docs

* use `Router`'s default state type param

* changelog

* don't use default type param for FromRequest and RequestParts

probably safer for library authors so you don't accidentally forget

* fix examples

* minor docs tweaks

* clarify how to convert handlers into services

* group methods in one impl block

* make sure merged `MethodRouter`s can access state

* fix docs link

* test merge with same state type

* Document how to access state from middleware

* Port cookie extractors to use state to extract keys ()

* Updates ECOSYSTEM with a new sample project ()

* Avoid unhelpful compiler suggestion ()

* fix docs typo

* document how library authors should access state

* Add `RequestParts::with_state`

* fix example

* apply suggestions from review

* add relevant changes to axum-extra and axum-core changelogs

* Add `route_service_with_tsr`

* fix trybuild expectations

* make sure `SpaRouter` works with routers that have state

* Change order of type params on FromRequest and RequestParts

* reverse order of `RequestParts::with_state` args to match type params

* Add `FromRef` trait ()

* Add `FromRef` trait

* Remove unnecessary type params

* format

* fix docs link

* format examples

* Avoid unnecessary `MethodRouter`

* apply suggestions from review

Co-authored-by: Dani Pardo <dani.pardo@inmensys.com>
Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-08-17 15:13:31 +00:00
Altair Bueno
fb21561616
Add WithRejection ()
* new(axum-extra): Added `WithRejection` base impl

Based on @jplatte's version (https://github.com/tokio-rs/axum/issues/1116#issuecomment-1215048273), with slight changes

- Using `From<E::Rejection>` to define the trait bound on a more concise way
- Renamed variables to something more meaningfull

* revert(axum-extra): Removed `with_rejection` feat

* ref(axum-extra): Replaced `match` with `?`

* tests(axum-extra): Added test for `WithRejection`

* examples: Replaced custom `Json` extractor with `WithRejection`

* docs(axum-extra): Added doc to `WithRejection`

* fmt(cargo-check): removed whitespaces

* fmt(customize-extractor-error): missing fmt

* docs(axum-extra): doctest includes `Handler` test

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* docs(axum-extra):` _ `-> `rejection`

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* docs(axum-extra): fixed suggestions

* fix(axum-extra): `WithRejection` manual trait impl

* revert(customize-extractor-error): Undo example changes

refs: d878eede18 , f9200bf4b9

* example(customize-extractor-error): Added reference to `WithRejection`

* docs(axum-extra): Removed `customize-extractor-error` reference

* fmt(axum-extra): cargo fmt

* docs(axum-extra): Added `WithRejection` to CHANGELOG.md

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-08-17 07:59:25 +00:00
kkocdko
a8e80bcb97
Improve performance in low-level-rustls example () 2022-08-12 11:57:59 +00:00
David Pedersen
d9ef24c5ff
Replace async-graphql with link to async-graphql's own examples ()
* Replace async-graphql with link to async-graphql's own examples

* exclude async-graphql directory

* does this fix it?

* apparently this needs to be sorted as well

* Update .github/workflows/CI.yml

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-08-09 14:56:50 +00:00
Jonas Platte
f0f60681ef
Fix intra-doc links on docs.rs ()
* Use version 2 of Cargo's feature resolver

* Increase minimum version of tungstenite

Tungstenite 0.17.1 has a higher MSRV, and there should be no reason to
use it over 0.17.2.

* Clean up and fix MSRV CI job

* Fix some intra-doc links not resolving correctly on docs.rs

* Bump minimum version of tower

… to avoid dependencies with a broken minimum-versions chain.
2022-07-28 19:14:31 +02:00
Péter Leéh
6ff1c2111e
Fix comment typos in stream-to-file example () 2022-07-27 11:10:00 +00:00
Lex Cao
3c0778b16d
Add an example for head request ()
As  add get-head request, adding an example.
2022-07-26 20:19:03 +02:00
Sugih Jamin
4558671a0b
Redirect HTTP to HTTPS in tls-rustls example () 2022-07-23 10:23:40 +02:00
Kartavya Vashishtha
cf09f62a1a
Add example for multiple listen addrs () 2022-07-20 18:33:12 +00:00
azzamsa
a3eaa332e4
test: use ready() and call() to avoid using clone() () 2022-07-20 12:19:15 +00:00
Allan
928d60fbba
Fix two comment typos () 2022-07-18 17:16:38 +00:00
Jonas Platte
1812c4dfe8
Remove explicit TryFrom, TryInto imports () 2022-06-17 18:36:49 +00:00
David Pedersen
93251fa203
Bump MSRV to 1.56 and update to the 2021 edition () 2022-06-17 20:11:35 +02:00
David Pedersen
fd70f81c46
More robust asset paths in examples ()
* More robust asset paths in examples

* Update examples/low-level-rustls/src/main.rs

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

* format

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-06-15 22:42:49 +02:00
Shing
cbb2e8a244
Fix missing assets in websockets example ()
* fix missing assets running websockets example

* Update examples/websockets/src/main.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* remove unnecessary mut

* fix cargo fmt

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-06-15 10:04:44 +02:00
David Pedersen
968ee44631
Sort dependencies in Cargo.tomls ()
* sort dependencies

* check sorted deps on CI

* this should fail

* does caching matter?

* fix sorting
2022-06-10 08:59:17 +02:00
David Pedersen
be71e7b286
Fix vulnerability in example-stream-to-file example ()
* Fix vulnerability in example-stream-to-file example

* Save files to separate directory
2022-05-17 12:38:15 +02:00
Jonas Platte
591434778f
Slightly simplify CORS example () 2022-05-12 11:36:57 +02:00
David Pedersen
7774cfd1f7
Update static file server example () 2022-05-08 19:52:34 +00:00
takumi
4b384fa01c
upgrade uuid from 0.8 to 1.0 () 2022-05-05 07:48:49 +02:00
David Pedersen
d1043db254
Fix driving readiness for example-rest-grpc-multiplex () 2022-05-03 09:21:49 +00:00
takumi
4ff5e409e3
Add rest and grpc example ()
* Add rest and grpc example

* remove needless dependencies

* Apply suggestions from code review

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* Update examples/rest-grpc-multiplex/src/main.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* Update examples/rest-grpc-multiplex/src/main.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* Update examples/rest-grpc-multiplex/src/multiplex_service.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* Update examples/rest-grpc-multiplex/Cargo.toml

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* Update examples/rest-grpc-multiplex/src/multiplex_service.rs

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>

* clean noisy code

* fix nitpicks

* missing newline

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-05-02 15:52:55 +00:00
David Pedersen
1fe4558362
Move examples to separate workspace ()
* Move examples to separate workspace

* update commands to run examples

* remove debug
2022-04-29 18:53:41 +02:00
David Pedersen
79f6cde3b1
Update to tower-http 0.3.0 ()
* Update to tower-http 0.3.0

* changelog link
2022-04-25 14:59:16 +00:00
Slava
0313c08dc9
helpful note about posting with CORS () 2022-04-17 08:13:22 +00:00
zys864
a237edb7c3
Fix example-unix-domain-socket on non-unix platforms ()
* remove unused `axum`'s dependency:`tokio-util`

* fix `examples/todos`'s `async fn todos_index` iter_overeager_cloned

* Add docs to `/examples/async-graphql`, just like other xamples.

* remove `examples/async-graphql` unused dependencies `tracing-subscriber` and `trace`

* `examples/chat` deps `trace` and `tracing-subscriber` never be used. Add trace `debug` to `chat`

* remove `examples/print-request-response` unused dependency `axum-extra`

* remove `examples/prometheus-metrics` unused dependency `axum-extra`

* remove `examples/reverse-proxy` unused dependencies `tracing-subscriber` and `trace`

* `examples/chat` fmt fix

* fix `example-unix-domain-socket` compile error on not-unix platforms

Co-authored-by: zys864 <zys864@qq.com>
Co-authored-by: zys864 <zys864@gmail.com>
2022-04-08 11:29:52 +02:00
Simon Sellar
59007d6111
Minor fixup of websocket example logging text. () 2022-04-06 10:33:34 +00:00
David Pedersen
2270cf7b3e
Add "stream to file" example ()
* Add "stream to file" example

* add title tag
2022-04-03 12:28:29 +02:00
David Pedersen
21552fe434
Remove bound from into_make_service_with_connect_info ()
Fixes 
2022-03-31 16:49:49 +00:00
Evan Schwartz
3084dc10ca
Accept &str for Redirect ()
* Accept &str for Redirect

* Fix doc example

* fix more docs examples

* update changelog

* fix changelog label

Co-authored-by: David Pedersen <david.pdrsn@gmail.com>
2022-03-31 10:03:06 +02:00
David Pedersen
437fe5b931
Make status codes for JsonRejection more precise ()
* Fix status codes for `JsonRejection` rejections

Fixes 

* Apply suggestions from code review

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>

Co-authored-by: Jonas Platte <jplatte+git@posteo.de>
2022-03-18 16:53:39 +01:00
David Pedersen
33ee55e52c
Add example for consuming request body in middleware and extractor () 2022-03-18 15:41:38 +00:00
Jonas Platte
79b94b9bd6
Replace set_var usage in examples ()
* examples: Fix inconsistent toml formatting

* examples: Replace set_var usage
2022-03-06 12:37:00 +01:00
Max Bruckner
99fbd3d32c
Add note about order of extractors in the reverse-proxy example () 2022-03-03 22:33:33 +01:00
zys864
768d8a8218
Fix minor issues in some examples ()
* remove unused `axum`'s dependency:`tokio-util`

* fix `examples/todos`'s `async fn todos_index` iter_overeager_cloned

* Add docs to `/examples/async-graphql`, just like other xamples.

* remove `examples/async-graphql` unused dependencies `tracing-subscriber` and `trace`

* `examples/chat` deps `trace` and `tracing-subscriber` never be used. Add trace `debug` to `chat`

* remove `examples/print-request-response` unused dependency `axum-extra`

* remove `examples/prometheus-metrics` unused dependency `axum-extra`

* remove `examples/reverse-proxy` unused dependencies `tracing-subscriber` and `trace`

* `examples/chat` fmt fix
2022-03-01 09:30:09 +00:00
David Pedersen
a2b568c7c1
Implement tower::Layer for Extension ()
* Implement `tower::Layer` for `Extension`

* changelog
2022-03-01 00:39:22 +01:00
David Pedersen
f12ab072c5
Add IntoResponseParts ()
* Add `IntoResponseParts`

* docs

* Add test

* don't allow overriding body or response

* macroify impls

* re-order things a bit

* Fix tests

* Also allow overriding version

* Move things into separate modules

* docs

* clean up

* fix trybuild test

* remove churn

* simplify buliding response

* fixup test

* fix docs typo

* Use `HeaderValue::from_static`, might be faster

* Bring back `impl IntoResponse` in example

* Remove blanket impl to improve error message

* don't need to set `content-type`

* Apply suggestions from code review

Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>

* changelog

Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2022-02-28 23:04:33 +00:00
zys864
cb168b96fe
fix examples/todos's async fn todos_index iter_overeager_cloned ()
* remove unused `axum`'s dependency:`tokio-util`

* fix `examples/todos`'s `async fn todos_index` iter_overeager_cloned
2022-02-25 15:29:23 +01:00
frobiac
8c0926ee5b
examples(jwt): Claims.exp represents a UTC timestamp ()
For the example to work, it should be an epoch value in the future.

See d8a33def00/README.md (L61)
2022-02-15 21:43:31 +00:00
David Pedersen
409a6651f5
Update dependencies () 2022-02-12 17:16:14 +00:00
Evgenii
0c16ce7649
fix: typo in a comment in a sqlx-postgres example () 2022-02-04 08:14:34 +01:00
David Pedersen
a04fc42d75
Rework middleware docs ()
* rework middleware docs

* Apply suggestions from code review

Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>

Co-authored-by: Jonas Platte <jplatte@users.noreply.github.com>
2022-01-30 20:09:18 +01:00
YuKun Liu
c0473f2b6f
Expand WebSocket example to match on Message () 2022-01-25 15:31:33 +00:00
FlakM
32c9ab3c56
Add sqlx example with migrations ()
* Add sqlx example with migrations

Simple use case for sqlx based on tokio postgres example.
Sqlite database is created on execution in ./target directory
and migrations are then run against it.

* sqlx example uses postgres instead of sqlite3

Also removed migrations and database creation code.
2022-01-25 16:20:00 +01:00
David Pedersen
9004a14302
Move middleware::from_fn into axum ()
* Move `middleware::from_fn` into axum

* changelog

* fix feature

* Rephrase changelog a bit
2022-01-25 10:19:06 +01:00
David Pedersen
184ea656c0 Change HeaderMap extractor to clone the headers ()
* Change `HeaderMap` extractor to clone the headers

* fix docs

* changelog

* inline variable

* also add changelog item to axum

* don't list types from axum in axum-core's changelog

* document that `HeaderMap::from_request` clones the headers

* fix typo

* a few more typos
2022-01-23 18:01:52 +01:00
Nick Ashley
9b4232b786 Replace public use of mime crate with &str ()
Replaces `Field::content_type`'s return type with `&str`.
This is a breaking change.

Closes 
2022-01-23 18:01:52 +01:00
Nick Ashley
007a0e85f2
Use 308 instead of 301 for trailing slash redirects ()
* Use 308 status instead of 301 when redirecting

For redirects resulting from requests to paths with a trailing slash,
use 308 instead of 301 to prevent non-GET requests (POST, PUT, etc) from
being changed to GET.

For example, (assuming a route for /path is defined)...
  - Old behavior results in:
  POST /path/ -> GET /path

  - New behavior results in:
  POST /path/ -> POST /path

Fixes 

* Add deprecation notice to found()

Deprecates found() due to its use of HTTP 302

* rustfmt

* Use dedicated redirect method

Use Redirect::permanent instead of re-implementing its functionality

* Remove deprecated method from example

Replace usages of Redirect:found with Redirect::to and Redirect::temporary as appropriate

* Fix panic in oauth example

Previously the example would panic if a request was made without the
`Cookie` header. Now the user is redirected to the login page as
expected.

* Update CHANGELOG

* Revert pub TypedheaderRejection fields

* Fix clippy lint

* cargo fmt

* Fix CHANGELOG link

* Adhere to implicit line length limit
2022-01-12 15:14:06 +01:00