Commit Graph

742 Commits

Author SHA1 Message Date
Sunli
1086d279c3 Bump multer from v1.2.2 to v2.0.0 2021-06-07 14:07:53 +08:00
Sunli
577c7c5193 Clippy clean 2021-06-07 14:06:06 +08:00
Sunli
dfe8245894 Add support for returning multiple resolver errors. #531 2021-06-07 14:03:36 +08:00
Oliver Cooper
b6dcb02df8 Aligned NaiveDateTime formatting with DateTime
Fixes #526

Chrono uses `%Y-%m-%dT%H:%M:%S%.f%:z` for it's RCC3339 formatting implementation. See 3467172c31/src/format/mod.rs (L680)
2021-06-03 10:12:32 +12:00
Lichuan Shang
0b7957dfea fix: typo then => than 2021-05-25 18:20:47 +08:00
Yin Jifeng
6d5393aa38 fix: call instrument span later 2021-05-19 10:49:06 +08:00
Oscar Beaumont
32c81d1268 style:linted code 2021-05-18 03:27:50 +08:00
Oscar Beaumont
21938bb363 Allow the ability to set GraphQL Playground settings 2021-05-14 15:16:23 +08:00
Scott Côté
e449373832 style: cargo fmt 2021-05-10 23:00:29 -04:00
Scott Côté
f221528ee5 feat: Add secrecy crate feature 2021-05-10 20:49:48 -04:00
Sunli
81486980a5 Rustfmt 2021-05-08 14:10:59 +08:00
Sunli
6dd7245914
Merge pull request #501 from D1plo1d/feature/websocket-file-uploads
Added `Websocket::with_message_stream` for client message customization
2021-05-08 14:10:28 +08:00
Sunli
deeedf11a6 Clippy clean 2021-05-07 10:14:05 +08:00
D1plo1d
820751d126 feat: Websocket::with_message_stream added for developers to experiment with File Uploads over WebSockets 2021-05-06 20:08:28 -04:00
Sunli
cdd13ea1be Fix the problem that the ComplexObject macro cannot work due to the secret attribute. 2021-04-23 10:25:00 +08:00
Utkarsh Kukreti
14d0ff258d add missing fonts to http::playground_source's html
graphql-playground uses Open Sans and Source Code Pro and its README
suggests adding this snippet [1].

[1]: https://github.com/graphql/graphql-playground#use
2021-04-18 03:03:29 +05:30
Sunli
956a9decc7 Clippy clean 2021-04-12 16:01:03 +08:00
Sunli
5806682ad0 Fixed an error in exporting Federation SDL. 2021-04-12 15:46:49 +08:00
Sunli
5d6b870969 Now when the resolver returns the Result type, E can be all types that implement Into<async_graphql::Error>. 2021-04-09 15:04:01 +08:00
Sunli
8c896f96e1 Remove spin crate from dependencies 2021-04-08 11:41:15 +08:00
Sunli
f7e05b78a3 Fix stack overflow during Registry::create_type for recursive type while running Schema::build. #474 2021-04-08 11:27:06 +08:00
Sunli
56d373d0d7 Update CI 2021-04-07 19:46:58 +08:00
Sunli
6aa191fba5 Add secret attribute for arguments, they will not appear in the log. #463 2021-04-07 19:40:19 +08:00
Sunli
1399b41efb Fix missing log output of Logger extension. 2021-04-05 21:47:45 +08:00
Sunli
22a5e71215 Improve Extensions. 2021-04-05 12:21:02 +08:00
Sunli
d97ddda91d Update subscription.rs 2021-04-04 19:51:41 +08:00
Sunli
7000651b88 Rework Extension 2021-04-04 14:37:41 +08:00
Sunli
14718a2e4c Add the BuildHasher generic parameter to dataloader::HashMapCache to allow custom hashing algorithms. #455 2021-04-02 18:22:06 +08:00
Sunli
659ddfa47e Add SelectionField::alias and SelectionField::arguments methods. 2021-04-02 11:04:59 +08:00
Sunli
2f9fb53688 Fix Schema::sdl() does not include subscription definitions. #464 2021-04-01 20:56:14 +08:00
Sunli
7ff4db8f1a Implements ScalarType for serde_json::Value. 2021-04-01 16:54:54 +08:00
Sunli
38e0153798 Add cache support for DataLoader. #455 2021-04-01 15:46:46 +08:00
Sunli
04b9309f09 Add name and visible attributes for Newtype macro for define a new scalar. #437 2021-03-31 19:28:19 +08:00
Sunli
39609cf116 Remove SchemaBuilder::override_name method. #437 2021-03-31 16:54:57 +08:00
Sunli
f62843cbd3 Add Request::disable_introspection method. #456 2021-03-30 11:59:57 +08:00
Sunli
a5a18824e7 Clippy clean 2021-03-26 21:07:45 +08:00
Sunli
cc937b70b5 Rework Extension & TracingExtension & OpenTelemetryExtension 2021-03-26 12:03:10 +08:00
Denis Nevmerzhitskii
876d78e188 Fix chrono-tz integration 2021-03-24 19:09:08 +02:00
Sunli
e991ffb814 Fix internal context missing when there's no connection_init frame. #451 2021-03-24 17:24:12 +08:00
Sunli
d280978ccb Update dependencies 2021-03-24 12:25:03 +08:00
Sunli
e9c4a5d189 Update docs 2021-03-22 13:27:24 +08:00
Sunli
d6c79771d5 Remove TracingConfig
Now Request span always takes the current span as the parent, so this option is no longer needed.
2021-03-22 12:01:49 +08:00
Sunli
8310fa4350 Now all features are not activated by default. 2021-03-22 10:39:17 +08:00
Sunli
6dfd660e6a Add extension::OpenTelemetry. 2021-03-22 09:36:14 +08:00
Sunli
aa1e72e68e Add SchemaBuilder::enable_subscription_in_federation method. #449 2021-03-20 17:22:18 +08:00
Sunli
cf1fe6f6c7 Fix tracing extension doesn't work with async code. ##448 2021-03-20 10:32:41 +08:00
Sunli
bec0fc18a9 Add ComplexObject macro. #355 2021-03-18 10:13:46 +08:00
Sunli
08c1ace4b6 Fix the problem that the validation does not work on some inline fragments. 2021-03-14 10:15:52 +08:00
Sunli
fbf175b394 Add DataLoader::loader method. #441 2021-03-12 15:41:10 +08:00
Sunli
5c644de219 Switch the async runtime used for testing to Tokio. 2021-03-12 12:47:24 +08:00
Sunli
a51abb7284 Add SchemaBuilder::override_name method. #437 2021-03-09 18:07:18 +08:00
Sunli
1e9771a17f Add extends attribute for derive macros Subscription and MergedSubscription. 2021-03-09 15:12:14 +08:00
Sunli
6b21f63817 Export subscription type to Federation SDL. 2021-03-09 14:54:54 +08:00
Sunli
3f913651b1 Remove unnecessary Box from WebSocket messages. 2021-03-09 12:07:12 +08:00
Sunli
97d5097b10 Execute _entity requests in parallel. #431 2021-03-07 16:37:34 +08:00
Taiki Endo
cb03ec23b8 Fix format of InputObject in SDL 2021-03-07 15:35:47 +09:00
Sunli
32ab16f076 Add descriptions for the exported Federation SDL. 2021-03-06 08:38:19 +08:00
Sunli
69341df41e Moved Variables from async_graphql::context::Variables to
`async_graphql::Variables`.
2021-02-28 09:37:42 +08:00
Sunli
baa837f2ca Allow the deprecation attribute to have no reason. 2021-02-27 11:59:58 +08:00
Sunli
1dd3c7589f Clippy clean 2021-02-26 20:05:09 +08:00
Sunli
60d4eb5394 Improve the performance of introspection queries. 2021-02-24 12:06:11 +08:00
Sunli
221e4ff279 Fix the problem that the borrowing lifetime returned by the Context::data function is too small. 2021-02-23 23:05:08 +08:00
Sunli
cd8da606f2 When introspection is disabled, introspection related types are no longer registered. 2021-02-23 12:49:41 +08:00
Sunli
14a88cfa19 Add support for Federation nested keys. 2021-02-21 23:06:26 +08:00
puh
eabdf6a74a Fix typo in multipart stream size limit calculations 2021-02-13 21:50:17 +03:00
Sunli
f13a1b25ce Clippy clean 2021-02-13 09:55:53 +08:00
Sunli
bd3784e402 Rustfmt 2021-02-13 09:28:05 +08:00
Sunli
550ecd9660 Fixed GraphQL over WebSocket Protocol does not support ConnectionError events. #406 2021-02-06 11:02:41 +08:00
Sunli
8f4f32bae2 Fixed the bug that can accept subscription requests during the initialization of WebSocket. 2021-02-06 09:24:00 +08:00
Sunli
43a8ad6859 Supports async websocket initializer. #393 2021-01-16 16:37:20 +08:00
Sunli
879bcd6061 Add NewType derive macro. #388 2021-01-15 10:29:03 +08:00
Sunli
95e372e0d3 Add Send + Sync constraints for InputType, OutputType and SubscriptionType. 2021-01-14 12:41:59 +08:00
Sunli
91fdad2602 Fix the bug that dataloader will only return one value when loading the same key. #386 2021-01-11 09:42:30 +08:00
Sunli
4d6fd5b539 Clippy clean 2021-01-11 09:01:28 +08:00
Naaman Curtis
b16d7c8aac
update response to correctly carry headers through (#384)
* update response to correctly carry headers through
2021-01-11 08:05:51 +08:00
Naaman
e50e9d8d30 Update http-headers to use http::HeaderMap 2021-01-10 10:57:28 +00:00
Sunli
20e5732525 Implements InputType for Box<T> and Arc<T>. #382 2021-01-10 13:48:18 +08:00
Sunli
c547252121 #[Object] on impl dyn TraitObj. #381 2021-01-10 11:21:47 +08:00
Sunli
1897859b91 Add Context::set_http_header method. #370 2021-01-10 08:06:48 +08:00
Ejez
3a8e0e0ae0
Include full link (#379)
Include the full link to ensure it is always accessible, whether from
github, doc.rs or elsewhere.
2021-01-06 22:06:01 +08:00
Sunli
ed1dce4985 Add Schema::federation_sdl method. #376 2021-01-06 11:01:13 +08:00
Sunli
8bc33cfd44 Clippy clean 2021-01-04 08:18:28 +08:00
Sunli
6b540c3845 Implements Debug for SelectionField. #364 2021-01-01 12:03:30 +08:00
Sunli
0e5c63413f Improve dataloader 2020-12-22 10:04:21 +08:00
Sunli
f988a4050f Update docs. 2020-12-21 19:23:51 +08:00
Sunli
a0e05b9c92 Add dataloader 2020-12-21 13:33:36 +08:00
Sunli
f10cda9e78 Add custom complexity for subscription. 2020-12-19 18:39:33 +08:00
Sunli
bbb7124616 Add Analyzer extension. 2020-12-18 23:58:03 +08:00
Sunli
48fa80ca34 Update docs. 2020-12-18 19:31:36 +08:00
Sunli
ec82e64a39 Improve depth and complex. 2020-12-18 18:56:28 +08:00
Sunli
8979620181 Remove async-channel and async-mutex from dependencies. 2020-12-17 10:05:32 +08:00
Sunli
f59c287ba0 Add the skip attribute to the InputObject fields. 2020-12-15 20:29:59 +08:00
Sunli
ef96aa6690 Update docs 2020-12-15 15:12:05 +08:00
Sunli
0747cba7d2 Update docs 2020-12-15 10:05:44 +08:00
Sunli
e29b7a3627 Add visible attributes on types, fields, and parameters, allowing some content to be hidden based on conditions. 2020-12-12 16:23:53 +08:00
Sunli
03f6ed4ba2 Rename InputValueType to InputType and OutputValueType to OutputType. 2020-12-11 15:37:50 +08:00
Sunli
30dffdd47f Merge branch 'master' into pr/350 2020-12-04 12:17:23 +08:00
Patrick Fernie
f7b9fa03f6 use Sec-WebSocket-Protocol header to negotiate protocol 2020-12-03 16:16:07 -05:00
Patrick Fernie
9d12337972 rustfmt fixes 2020-12-02 08:41:12 -05:00
Patrick Fernie
5f25b296b0 Add graphql-ws feature for subprotcol selection
On 2020-09-14 a revised version of the [GraphQL over
WebSocket](https://the-guild.dev/blog/graphql-over-websockets) spec was
released as [graphql-ws](https://github.com/enisdenjo/graphql-ws), which
differs from the de facto standard implemented by
[subscriptions-transport-ws](https://github.com/apollographql/subscriptions-transport-ws).

This adds a new `cargo` (non-default) feature, `graphql_ws`, which when enabled utilizes the new protocol spec.

Original [subscriptions-transport-ws
protocol](https://github.com/apollographql/subscriptions-transport-ws/blob/master/PROTOCOL.md)
Revised [graphql-ws
protocol](https://github.com/enisdenjo/graphql-ws/blob/master/PROTOCOL.md)
2020-12-02 08:13:00 -05:00
Sunli
09b0a83660 Add Context::field function. #346 2020-11-30 19:41:35 +08:00
Sunli
ad3f576fe9 Update upload.rs 2020-11-30 13:47:00 +08:00
Sunli
b115e534f3 Remove the dependency on bytes crate. 2020-11-30 13:43:17 +08:00
Sunli
1e21e29fd9 Fix the problem that the fields of the list are not merged correctly.#345 2020-11-27 10:26:23 +08:00
Sunli
60974c47dc Fix #343 2020-11-23 12:43:31 +08:00
Sunli
8370001272 Implements Cow<T> for OutputValueType. #189 2020-11-08 09:22:50 +08:00
Sunli
631ec4bba0 Update docs. 2020-11-07 21:30:40 +08:00
Sunli
ad0798e8de Add TracingConfig for each request. #337 2020-11-07 21:23:22 +08:00
Koxiaet
9d94c933ff Don't duplicate type names in parsing error message 2020-11-07 06:05:59 +00:00
Sunli
66c6823a1c Export sdl for interface to implements another interface. #322 2020-11-07 08:49:08 +08:00
Sunli
b6d48fae91 Fix the problem that the resolver_utils::resolve_container function does not call the extensions. #336 2020-11-07 08:27:50 +08:00
Sunli
54d2154a18 Clippy clean 2020-11-07 08:24:17 +08:00
Sunli
05002c68cb Add Tracing::with_parent function. #337 2020-11-07 08:22:24 +08:00
Sunli
4c6adfa07f Fixed a bug that websocket could not push data in a situation. 2020-11-06 22:20:12 +08:00
Sunli
89ab0c799f Fix the problem of scalar macro. 2020-11-03 13:50:22 +08:00
Sunli
c1794dbacb Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-11-01 11:31:59 +08:00
Sunli
82333e49b9 Remove the validation of the content-type by the receive_batch_body function, because this is of little significance. #332 2020-11-01 11:31:54 +08:00
Hargobind S. Khalsa
0f495cd627 Validate the query hash before persisting queries 2020-10-31 13:53:53 -07:00
Sunli
5097832539 Fix #327. 2020-10-28 09:39:19 +08:00
Sunli
b124382e9c Add SchemaBuilder::override_description function. 2020-10-27 10:06:10 +08:00
Sunli
0ead4d99ba Add docs 2020-10-27 09:19:00 +08:00
Koxiaet
10d900a280 Rustfmt 2020-10-26 15:14:53 +00:00
Koxiaet
686f9bcff9
Merge pull request #324 from simplificAR/master
Modify interface SDL and bump Rocket
2020-10-26 15:13:26 +00:00
Daniel Wiesenberg
efd4ee61cb
Change interface SDL to adhere to spec
When only one interface is implemented, there is no &. The & is only to combine more than one interface.
2020-10-26 14:58:36 +01:00
Sunli
770ed31508 Add use_type_description attribute for derive macros Object, Scalar and Subscription. 2020-10-26 21:34:05 +08:00
Sunli
11e82e56e4 Improve performance 2020-10-24 08:59:35 +08:00
Koxiaet
c11374b785 Fix #323 2020-10-23 17:18:37 +01:00
Olexiy Buyanskyy
aff2751d36 removed not needed namespaces 2020-10-23 13:51:09 +03:00
Olexiy Buyanskyy
d0032c731f removed not needed namespaces 2020-10-23 13:49:00 +03:00
Olexiy Buyanskyy
1ea5958d87 Fixed redundant_closure_for_method_calls
https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_for_method_calls
2020-10-23 11:10:00 +03:00
Sunli
055936f9ad Derive Serialize for Request and Deserialize for Response. 2020-10-23 08:26:48 +08:00
Olexiy Buyanskyy
8b5de7db6a Collected all clippy warnings and fixed 2
https://rust-lang.github.io/rust-clippy/master/index.html#inefficient_to_string
https://rust-lang.github.io/rust-clippy/master/index.html#match_wildcard_for_single_variants

Please change `allow` -> `deny` ub src/lib.rs to see other warnings. I feel some of them are important
2020-10-22 09:38:35 +03:00
Sunli
c999dd26dd Fix typo 2020-10-22 10:11:47 +08:00
Sunli
8edd59ffdb Fix the problem that the Registry::create_dummy_type function may overwrite the keys of the registered type. #316 2020-10-20 19:55:10 +08:00
Sunli
776aadf169 Add entity lookup support for MergedObject.
Add some GraphQL specification constraints for all derived macros.

Use `Registry::create_dummy_type` to create a merged type.
2020-10-20 11:49:31 +08:00
Sunli
7510741311 Fix the bug that ʻExtension::prepare_request` cannot get the correct request data through the context.
Add test code for extension.
2020-10-18 11:24:16 +08:00
Koxiaet
807bad2a72 Fix macro hygiene 2020-10-16 20:21:46 +01:00
Koxiaet
68381cfc65 Make macros hygienic 2020-10-16 11:37:59 +01:00
Koxiaet
db312a372d Replace futures with futures_util 2020-10-16 07:49:22 +01:00
Koxiaet
1b38ec46e0 Reduce code duplication in container resolver 2020-10-16 07:12:21 +01:00
Koxiaet
4e562a86a7 Avoid locking extensions mutex when possible 2020-10-16 06:52:52 +01:00
Koxiaet
a48953899c Remove itertools dependency 2020-10-16 06:37:48 +01:00
Sunli
f8905ff629 Update readme 2020-10-16 09:21:16 +08:00
Koxiaet
5c47f1ec57 Require POST for GraphQL requests 2020-10-15 18:42:09 +01:00
Koxiaet
2756c2cd5b Require JSON content-type 2020-10-15 18:30:16 +01:00
Sunli
985ee939d4 Add Schema::names function. 2020-10-15 19:36:54 +08:00
Koxiaet
0683b5a6be Support GET requests in actix-web integration 2020-10-15 10:33:38 +01:00
Sunli
03b276fe7e Fix a small bug. 2020-10-15 16:45:33 +08:00
Koxiaet
725156eda4 Rustfmt 2020-10-15 07:39:53 +01:00
Koxiaet
d34ac0ba08 Make imports consistent 2020-10-15 07:38:10 +01:00