QUERY (RFC 10008, June 2026; registered in the IANA HTTP Method Registry) is
safe and idempotent like GET but carries a request body like POST. It is wired
through exactly like PATCH:
- actix-web: `guard::Query()`, `web::query()`, `Resource::query()`, and
`TestRequest::query()`
- actix-web-codegen: `#[query]` routing macro (plus re-export from actix-web)
`http` 0.2 has no `Method::QUERY` constant, so the method is built with
`Method::from_bytes(b"QUERY").unwrap()`, with a TODO to switch to the constant
once the `http` dependency is bumped (#3384). No dependency changes.
`actix-http` needs no change (it uses `http::Method` directly).
Tests mirror the existing PATCH coverage and add a body-carrying QUERY test.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* add scope proc macro
* Update scope macro code to work with current HttpServiceFactory
* started some test code
* add some unit tests
* code formatting cleanup
* add another test for combining and calling 2 scopes
* format code with formatter
* Update actix-web-codegen/src/lib.rs with comment documentation fix
Co-authored-by: oliver <151407407+kwfn@users.noreply.github.com>
* work in progress. revised procedural macro to change othe macro call
* add tests again. refactor nested code.
* clean up code. fix bugs with route and method attributes with parameters
* clean up for rust fmt
* clean up for rust fmt
* fix out of date comment for scope macro
* sync to master branch by adding test_wrap
* needed to format code
* test: split out scope tests
* test: add negative tests
* chore: move imports back inside (?)
* docs: tweak scope docs
* fix: prevent trailing slashes in scope prefixes
* chore: address clippy lints
---------
Co-authored-by: oliver <151407407+kwfn@users.noreply.github.com>
Co-authored-by: Rob Ede <robjtede@icloud.com>
* fix: Do not require actix-router default features from actix-web-codegen
* docs: update changelog
* test: update trybuild stderr
---------
Co-authored-by: Dylan Anthony <dbanty@users.noreply.github.com>
Co-authored-by: Rob Ede <robjtede@icloud.com>
* WIP: basic implementation for `routes` macro
* chore: changelog, docs, tests
* error on missing methods
* Apply suggestions from code review
Co-authored-by: Igor Aleksanov <popzxc@yandex.ru>
* update test stderr expectation
* add additional tests
* fix stderr output
* remove useless ResourceType
this is dead code from back when .to and .to_async were different ways to add a service
Co-authored-by: Igor Aleksanov <popzxc@yandex.ru>
Co-authored-by: Rob Ede <robjtede@icloud.com>
* compile time validation of path
* added trybuild err message
* Update Cargo.toml
* add changelog entry
* test more cases of path validation
* fmt
Co-authored-by: Rob Ede <robjtede@icloud.com>