Jim Blandy
c5907747ad
Remove implementation of Responder for (). Fixes #1108 .
...
Rationale:
- In Rust, one can omit a semicolon after a function's final expression to make
its value the function's return value. It's common for people to include a
semicolon after the last expression by mistake - common enough that the Rust
compiler suggests removing the semicolon when there's a type mismatch between
the function's signature and body. By implementing Responder for (), Actix makes
this common mistake a silent error in handler functions.
- Functions returning an empty body should return HTTP status 204 ("No Content"),
so the current Responder impl for (), which returns status 200 ("OK"), is not
really what one wants anyway.
- It's not much of a burden to ask handlers to explicitly return
`HttpResponse::Ok()` if that is what they want; all the examples in the
documentation do this already.
2019-11-23 21:10:02 +06:00
Nikolay Kim
8683ba8bb0
rename .to_async() to .to()
2019-11-21 21:36:35 +06:00
Nikolay Kim
1f0577f8d5
cleanup api doc examples
2019-11-21 16:02:17 +06:00
Nikolay Kim
53c5151692
use response instead of result for asyn c handlers
2019-11-21 16:02:17 +06:00
Nikolay Kim
55698f2524
migrade rest of middlewares
2019-11-21 16:02:17 +06:00
Nikolay Kim
3127dd4db6
migrate actix-web to std::future
2019-11-21 16:02:17 +06:00
Feiko Nanninga
88110ed268
Add security note to ConnectionInfo::remote() ( #1158 )
2019-11-14 08:32:47 +06:00
Nikolay Kim
f7f410d033
fix test order dep
2019-11-06 11:20:47 -08:00
Anton Lazarev
ace98e3a1e
support Host guards when Host header is unset ( #1129 )
2019-10-15 05:05:54 +06:00
Priit Laes
0f09415469
Convert documentation examples to Rust 2018 edition ( #1120 )
...
* Convert types::query examples to rust-2018 edition
* Convert types::json examples to rust-2018 edition
* Convert types::path examples to rust-2018 edition
* Convert types::form examples to rust-2018 edition
* Convert rest of the examples to rust-2018 edition.
2019-10-07 11:29:11 +06:00
Koen Hoeijmakers
15d3c1ae81
Update docs of guard.rs ( #1116 )
...
* Update guard.rs
2019-10-07 12:05:17 +09:00
Igor Aleksanov
f81ae37677
Add From<Payload> for crate::dev::Payload ( #1110 )
...
* Add From<Payload> for crate::dev::Payload
* Make dev::Payload field of Payload public and add into_inner method
* Add changelog entry
2019-10-01 14:05:38 +06:00
Nikolay Kim
5169d306ae
update ConnectionInfo.remote() doc string
2019-09-27 07:03:12 +06:00
karlri
c659c33919
Feature uds: Add listen_uds to ServerBuilder ( #1085 )
...
Allows using an existing Unix Listener instead of binding to a path.
Useful for when running as a daemon under systemd.
Change-Id: I54a0e78c321d8b7a9ded381083217af590e9a7fa
2019-09-25 15:16:51 +06:00
Nikolay Kim
d9af8f66ba
Use actix-testing for testing utils
2019-09-25 10:28:41 +06:00
Jim Blandy
58c7065f08
Implement register_data
method on Resource
and Scope
. ( #1094 )
...
* Implement `register_data` method on `Resource` and `Scope`.
* Split Scope::register_data tests out from Scope::data tests.
* CHANGES.md: Mention {Scope,Resource}::register_data.
2019-09-18 06:36:39 +06:00
Jos van den Oever
32a1c36597
Make UrlencodedError::Overflow more informative ( #1089 )
2019-09-17 06:58:04 +06:00
Nikolay Kim
a32573bb58
Allow to re-construct ServiceRequest from HttpRequest and Payload #1088
2019-09-13 11:56:24 +06:00
Nikolay Kim
60b7aebd0a
fmt & clippy
2019-09-12 21:52:46 +06:00
κeen
8a9fcddb3c
Condition middleware ( #1075 )
...
* add condition middleware
* write tests
* update changes
* Update src/middleware/condition.rs
Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
* Update src/middleware/condition.rs
Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
* Update src/middleware/condition.rs
Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
* Update src/middleware/condition.rs
Co-Authored-By: Yuki Okushi <huyuumi.dev@gmail.com>
2019-09-09 12:26:38 +06:00
Nikolay Kim
63ddd30ee4
on_connect result isnt added to request extensions for http2 requests #1009
2019-09-01 13:15:02 +06:00
Philip Jenvey
616981ecf9
clear extensions before reclaiming HttpRequests in their pool ( #1063 )
...
Issue #1062
2019-08-29 09:35:05 +06:00
Leland Jansen
c193137905
actix_web::test::TestRequest::set_form ( #1058 )
2019-08-28 21:32:17 +06:00
Erlend Langseth
a07cdd6533
Data::into_inner
2019-08-27 17:25:25 +01:00
Yuki Okushi
23d768a77b
Add explicit dyn
s ( #1041 )
...
* Add explicit `dyn`s
* Remove unnecessary lines
2019-08-17 02:45:44 +09:00
Nikolay Kim
0d9ea41047
update min rust version
2019-07-31 06:49:46 -07:00
Cyril Plisko
6f2049ba9b
Fix typo
2019-07-25 12:54:59 +01:00
jesskfulwood
8f48ed2597
impl Responder for Form
2019-07-20 14:46:46 +01:00
Nikolay Kim
941241c5f0
Remove unneeded actix-utils dependency
2019-07-20 10:50:36 +06:00
jesskfullwood
f8320fedd8
add note about Query decoding ( #992 )
2019-07-19 17:37:49 +06:00
jesskfullwood
c808364c07
make Query payload public ( #991 )
2019-07-19 15:47:44 +06:00
Anton Lazarev
3650f6d7b8
Re-implement Host predicate ( #989 )
...
* update HostGuard implementation
* update/add tests for new HostGuard implementation
2019-07-19 10:28:43 +06:00
Nikolay Kim
fbdda8acb1
Unix domain sockets (HttpServer::bind_uds) #92
2019-07-18 17:24:12 +06:00
Rotem Yaari
d03296237e
Log error results in Logger middleware ( closes #938 ) ( #984 )
...
* Log error results in Logger middleware (closes #938 )
* Log internal server errors with an ERROR log level
* Logger middleware: don't log 500 internal server errors, as Actix now logs them always
* Changelog
2019-07-18 14:31:18 +06:00
Nikolay Kim
2a2d7f5768
nightly clippy warnings
2019-07-17 15:53:51 +06:00
Nikolay Kim
4092c7f326
clippy warnings
2019-07-17 15:08:30 +06:00
Nikolay Kim
baaa7b3fbb
Replace ClonableService with local copy
2019-07-17 13:55:44 +06:00
Ravi Shankar
32718b7e31
Expose factory traits and some clippy fixes ( #983 )
2019-07-17 12:58:42 +06:00
Nikolay Kim
7b1dcaffda
cleanup deprecation warning for Box<dyn>
2019-07-17 11:44:39 +06:00
Nikolay Kim
c65dbaf88e
expose app's ResourceMap via resource_map method
2019-07-17 11:33:05 +06:00
Nikolay Kim
c45728ac01
prep test server release
2019-07-16 10:21:52 +06:00
messense
b1143168e5
Impl Responder for (T, StatusCode) where T: Responder ( #954 )
2019-07-11 14:42:58 +06:00
Nikolay Kim
69456991f6
update api doc example for client and add panic info for connection_info
2019-07-11 14:40:37 +06:00
Michael Snoyman
0d8a4304a9
Drop a duplicated word ( #958 )
2019-07-05 20:46:55 +06:00
Cameron Dershem
37f4ce8604
Fixes typo in docs. ( #948 )
...
Small typo in docs.
2019-06-29 10:38:16 +06:00
messense
44bb79cd07
Call req.path() on Json extractor error only ( #945 )
...
* Call req.path() on Json extractor error only
* Cleanup len parse code
2019-06-28 10:44:53 +06:00
Nikolay Kim
af9fb5d190
Support asynchronous data factories #850
2019-06-28 10:43:52 +06:00
Cameron Dershem
c0c71f82c0
Fixes typo. ( #940 )
...
Small typo fix.
2019-06-25 23:23:36 +06:00
messense
313ac48765
Use encoding_rs crate instead of unmaintained encoding crate ( #922 )
...
* Use encoding_rs crate instead of unmaintained encoding crate
* Update changelog
2019-06-18 12:43:25 +06:00
Joe Roberts
d7780d53c9
Fix typo in actix_web::web::Data::get_ref docstring
( #921 )
2019-06-18 07:27:23 +06:00
Nikolay Kim
546a8a58db
remove cors and identity middlewares
2019-06-17 12:33:00 +06:00
Nikolay Kim
d293ae2a69
fix nested resource map registration #915
2019-06-15 22:12:20 +06:00
Nikolay Kim
d7ec241fd0
re-export identity and cors middleware
2019-06-15 21:47:06 +06:00
Nikolay Kim
cd323f2ff1
Move cors middleware to actix-cors crate
2019-06-15 09:34:16 +06:00
Nikolay Kim
c8118e8411
fix path doc tests
2019-06-12 20:12:15 +06:00
Nikolay Kim
e7ba67e1a8
rename PathPayloadError and test for path config
2019-06-12 17:02:45 +06:00
Lucas Berezy
13e618b128
Added initial support for PathConfig, allows setting custom error handler. ( #903 )
2019-06-12 16:49:56 +06:00
Nikolay Kim
7450ae37a7
Re-apply patch from #637 #894
2019-06-12 16:45:05 +06:00
Nikolay Kim
2ffda29f9b
Allow to test an app that uses async actors #897
2019-06-12 16:15:06 +06:00
Nikolay Kim
ff724e239d
move identity service separate crate
2019-06-12 15:52:48 +06:00
Bob
ee769832cf
get_identity from HttpMessage ( #908 )
...
* get_identity from HttpMessage
* more doc for RequestIdentity
2019-06-12 09:26:46 +06:00
Stefano Probst
53e2f8090f
Mark default enabled package features in the docs ( #890 )
2019-06-06 11:14:56 +06:00
Nikolay Kim
d9a62c4bbf
add App::register_data()
2019-06-05 08:43:39 +06:00
Nikolay Kim
0e138e111f
add external resource support on scope level
2019-06-03 23:41:32 +06:00
Denys Vitali
1fce4876f3
Scope configuration ( #880 )
...
* WIP: Scope configuarion
* Extensions: Fix into_iter()
* Scope: Fix tests
* Add ScopeConfig to web
Committing from mobile, if this doesn't look good it's because I haven't tested it...
* Scope Config: Use ServiceConfig instead
* Scope: Switch to ServiceConfig in doc
* ScopeConfig: Remove unnecessary changes, handle the case when data is empty
* ScopeConfig: Remove changes from actix-http
2019-06-03 23:12:37 +06:00
Nikolay Kim
15cdc680f6
Static files are incorrectly served as both chunked and with length #812
2019-06-01 17:57:40 +06:00
Mohab Usama
f1764bba43
Fix Logger time format (use rfc3339) ( #867 )
...
* Fix Logger time format (use rfc3339)
* Update change log
2019-05-31 12:09:21 +04:00
Nikolay Kim
1eb89b8375
remove debug prints
2019-05-25 03:16:53 -07:00
Vlad Frolov
801cc2ed5d
Cleaned unnecessary Option<_> around ServerBuilder in server.rs/HttpServer ( #863 )
2019-05-23 05:21:02 -07:00
Nikolay Kim
ded1e86e7e
Add ServiceRequest::set_payload() method
2019-05-22 21:25:51 -07:00
Nikolay Kim
d3e807f6e9
move Payload to inner http request
2019-05-22 11:49:27 -07:00
Nikolay Kim
7746e785c1
re-export Service and Transform traits
2019-05-22 11:20:37 -07:00
Nikolay Kim
4e141d7f5d
Merge branch 'master' of github.com:actix/actix-web
2019-05-22 11:18:42 -07:00
Nikolay Kim
12842871fe
Clear http requests pool on app service drop #860
2019-05-22 11:18:33 -07:00
Aliaksandr Rahalevich
fc85ae4014
small documentation fix ( #856 )
2019-05-21 10:43:18 -07:00
Harry Stern
5826f39dbe
Add set_json
method to TestRequest ( #851 )
...
- Takes a type which implements serde::Serialize, serializes it to JSON,
and sets it as the payload. The content-type is also set to JSON.
2019-05-18 19:36:28 -07:00
Herbert Jones
e857ab1f81
HttpServer::shutdown_timeout u16 to u64 ( #849 )
...
Increase maximum graceful shutdown time from 18 hours.
For issue #848 .
2019-05-18 10:50:35 -07:00
Miles Granger
4b215e0839
Support Query<T>::from_query() ( #846 )
2019-05-17 13:10:46 -07:00
Nikolay Kim
e1ff3bf8fa
fix resource match with params #841
2019-05-15 10:31:40 -07:00
Davide Di Carlo
bba90d7f22
Query config ( #839 )
...
* add QueryConfig
* expose QueryConfig in web module
* fmt
* use associated type for QueryConfig
* update CHANGES.md
2019-05-14 13:54:30 -07:00
Davide Di Carlo
6c3d8b8738
Make JsonConfig send ( #830 )
...
* replace Rc with Arc
* add Send trait requirement for Fn in JsonConfig error handler
* add Sync trait requirement for Fn in JsonConfig error handler
* use associated type inside JsonConfig
* fix lint: members in the impl has the same order in the trait
* Update CHANGES.md
2019-05-12 20:04:08 -07:00
Nikolay Kim
e9cbcbaf03
update dependencies
2019-05-12 10:18:02 -07:00
Nikolay Kim
45c05978b0
Allow to set/override app data on scope level
2019-05-12 09:42:05 -07:00
Nikolay Kim
df08baf67f
update actix-net dependencies
2019-05-12 08:34:51 -07:00
Nikolai Vazquez
a77b0b054a
Make App::configure
take an FnOnce
( #825 )
2019-05-10 14:44:49 -07:00
Nikolay Kim
fa78da8156
unify route and app data, it allows to provide global extractor config #775
2019-05-04 19:43:49 -07:00
James
7ef4f5ac0b
Make request headers optional in CORS preflight ( #816 )
2019-05-04 08:41:37 -07:00
Nikolay Kim
6b34909537
Fix NormalizePath middleware impl #806
2019-05-01 12:40:56 -07:00
Douman
87284f0951
Add doctest to verify NormalizePath middleware ( #809 )
2019-05-01 11:47:51 -07:00
Nikolay Kim
94a0d1a6bc
remove old api doc refs
2019-04-29 18:42:21 -07:00
Nikolay Kim
f4e1205cbb
fix reactor drop panic
2019-04-29 10:14:08 -07:00
Nikolay Kim
d2c1791067
add async handler test with blocking call
2019-04-29 09:45:37 -07:00
Nikolay Kim
f4b4875cb1
Add helper function for executing futures test::block_fn()
2019-04-29 09:34:14 -07:00
Nikolay Kim
29a841529f
Allow to construct Data instances to avoid double Arc for Send + Sync types.
2019-04-29 09:26:12 -07:00
Darin
b51b5b763c
added clarification to docs regarding middleware processing sequence, added delete method to TestRequest ( #799 )
...
* added clarification to docs regarding middleware processing sequnce
* added delete method to TestRequest, doc, and test
2019-04-29 09:14:36 -07:00
Nikolay Kim
70a4c36496
use Error explicitly
2019-04-25 11:14:32 -07:00
Nikolay Kim
cba78e06ae
update changes
2019-04-24 15:42:34 -07:00
Nikolay Kim
3b3dbb4f40
add raw services support
2019-04-24 15:29:15 -07:00
Darin
7300002226
grammar fixes ( #796 )
2019-04-24 13:21:42 -07:00
Maciej Piechotka
60fa0d5427
Store visit and login timestamp in the identity cookie ( #502 )
...
This allows to verify time of login or last visit and therfore limiting
the danger of leaked cookies.
2019-04-24 12:49:56 -07:00
Nikolay Kim
679d1cd513
allow to override responder's status code and headers
2019-04-24 10:25:46 -07:00
Nikolay Kim
898ef57080
Fix async web::Data factory handling
2019-04-23 21:21:49 -07:00
Nikolay Kim
48bee55087
.to_async() handler can return Responder type #792
2019-04-22 14:22:08 -07:00
Nikolay Kim
891f857547
update changes
2019-04-20 11:18:04 -07:00
Nikolay Kim
7292d0b696
drop chrono and use i64 for max age
2019-04-19 17:23:17 -07:00
Kilerd Chan
791f22bbc8
replate time::Duration
with chrono::Duration
and add max_age_time
method ( #789 )
...
* feat: replate time::Duration with chrono::Duration
* feat: rename max_age method which accepts `Duration` to max_age_time and add new max_age method accepting isize of seconds
* feat: replace `time:Duration` with `chrono:Duration` in repo `actix-http`
2019-04-19 13:54:44 -07:00
Douman
1e7f97a111
Add Normalization middleware for in place ( #783 )
2019-04-19 13:53:49 -07:00
Darin
ed94df189f
Merge branch 'master' into master
2019-04-18 19:03:48 -04:00
Nikolay Kim
aa255298ef
make ServiceRequest::from_parts private, as it is not safe to create from parts
2019-04-18 16:03:13 -07:00
dowwie
da86b6e062
added put and patch to TestRequest, docs, and test
2019-04-18 18:06:32 -04:00
Nikolay Kim
e659e09e29
update tests
2019-04-18 11:01:04 -07:00
Nikolay Kim
b64851c5ec
enable runtime for test:: methods
2019-04-17 10:28:27 -07:00
Nikolay Kim
420d3064c5
Add .peer_addr() #744
2019-04-16 10:11:38 -07:00
Nikolay Kim
7a28b32f6d
Rename test::call_success to test::call_service
2019-04-15 07:44:07 -07:00
Nikolay Kim
09cdf1e302
Rename RouterConfig to ServiceConfig
2019-04-15 07:32:49 -07:00
Nikolay Kim
ab4fda6084
update tests
2019-04-14 20:20:33 -07:00
Nikolay Kim
f9078d41cd
add test::read_response; fix TestRequest::app_data()
2019-04-14 19:52:12 -07:00
Darin
4cc2b38059
added read_response_json for testing ( #776 )
...
* added read_response_json for testing
* cleaned up
* modied docs for read_response_json
* typo in doc
* test code in doc should compile now
* use type coercion in doc
* removed generic R, replaced with Request
2019-04-14 16:25:45 -07:00
Nikolay Kim
5bd5651faa
Allow to use any service as default service
2019-04-13 22:25:00 -07:00
Nikolay Kim
ee33f52736
make extractor config type explicit
2019-04-13 16:35:25 -07:00
Nikolay Kim
4f30fa9d46
Remove generic type for request payload, always use default
2019-04-13 14:50:54 -07:00
Nikolay Kim
1f2b15397d
prepare alpha5 release
2019-04-12 14:00:45 -07:00
Nikolay Kim
5cfba5ff16
add FramedRequest builder for testing
2019-04-12 11:15:58 -07:00
Nikolay Kim
7801fcb993
update migration
2019-04-10 20:47:28 -07:00
Nikolay Kim
52aebb3bca
fmt
2019-04-10 15:05:03 -07:00
Darin
6ab9838977
added some error logging for extractors: Data, Json, Query, and Path ( #765 )
...
* added some error logging for extractors
* changed log::error to log::debug and fixed position of log for path
* added request path to debug logs
2019-04-10 12:45:13 -07:00
Nikolay Kim
9d82d4dfb9
Fix body propagation in Response::from_error. #760
2019-04-10 12:43:31 -07:00
Nikolay Kim
9bb40c249f
add h1::SendResponse future; renamed to MessageBody::size
2019-04-10 12:24:17 -07:00
Darin
9bcd5d6664
updated legacy code in call_success example ( #762 )
2019-04-08 11:20:46 -07:00
Nikolay Kim
aa78565453
use objects pool for HttpRequest; optimize nested services call
2019-04-07 23:06:21 -07:00
Nikolay Kim
75b213a6f0
refactor FromRequest trait
2019-04-07 14:43:07 -07:00
Nikolay Kim
748289f0ff
use custom headers map; more optimizations
2019-04-06 15:02:02 -07:00
Nikolay Kim
fbedaec661
add expect: 100-continue support #141
2019-04-05 16:46:44 -07:00
Nikolay Kim
02fcaca3da
add backward compatibility
2019-04-05 11:36:26 -07:00
Darin
18593d8476
updated Connector docs and renamed service() to finish() ( #757 )
...
* added Connector to actix-web::client namespace
* updated Connector, renaming service() to finish() and adding docs
* added doc for finish method on Connector
2019-04-05 11:34:27 -07:00
Nikolay Kim
b6dacaa23a
remove SendError and SendResponse services
2019-04-05 11:29:42 -07:00
Darin
162cd3eecd
added Connector to actix-web::client namespace ( #756 )
2019-04-05 07:37:00 -07:00
Nikolay Kim
309c480782
encoder sent uncompressed data before compressed
2019-04-04 15:03:40 -07:00
Nikolay Kim
d8bc66a18e
Use thread pool for response body comression
2019-04-04 13:17:55 -07:00
Nikolay Kim
bc834f6a03
remove some static contraints
2019-04-04 10:59:34 -07:00
Nikolay Kim
1e2bd68e83
Render error and return as response body
2019-04-03 19:55:19 -07:00
Haze
7d6085ddbd
Add %U (URLPath) for logger ( #752 )
...
* Add %R (Route) for logger
* Requested Updates (Route => URLPath, %R => %U)
2019-04-03 17:41:42 -07:00
Nikolay Kim
cef3dc3586
added app_data() method
2019-04-03 15:25:52 -07:00
Nikolay Kim
237bfba1ed
add App::configure() - allow to offload app configuration to different methods
2019-04-03 15:09:31 -07:00
Nikolay Kim
dfa0abf5a5
Export IntoHeaderValue
2019-04-03 12:44:47 -07:00
Nikolay Kim
e738361e09
move multipart support to separate crate
2019-04-03 12:28:58 -07:00
Nikolay Kim
bca31eb7ad
remove Deref
2019-04-02 13:35:01 -07:00
Nikolay Kim
e282ef7925
return back consuming builder
2019-04-02 12:51:16 -07:00
dowwie
6d169f4c9c
Merge branch 'master' of https://github.com/Dowwie/actix-web
2019-04-01 15:10:49 -04:00
dowwie
3dd3f7bc92
updated scope wrap doc
2019-04-01 15:10:28 -04:00