Commit Graph

731 Commits

Author SHA1 Message Date
Sunli
588bba549f 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
4d2110bf0d Clippy clean 2021-05-07 10:14:05 +08:00
D1plo1d
ed8332ec90 feat: Websocket::with_message_stream added for developers to experiment with File Uploads over WebSockets 2021-05-06 20:08:28 -04:00
Sunli
bdeeff328a Fix the problem that the ComplexObject macro cannot work due to the secret attribute. 2021-04-23 10:25:00 +08:00
Utkarsh Kukreti
a7f662e4a5 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
6a12847d4b Clippy clean 2021-04-12 16:01:03 +08:00
Sunli
664bc9b073 Fixed an error in exporting Federation SDL. 2021-04-12 15:46:49 +08:00
Sunli
572f907df7 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
9ab9a60ec0 Remove spin crate from dependencies 2021-04-08 11:41:15 +08:00
Sunli
36c7d4a883 Fix stack overflow during Registry::create_type for recursive type while running Schema::build. #474 2021-04-08 11:27:06 +08:00
Sunli
bcfc9b9dd9 Update CI 2021-04-07 19:46:58 +08:00
Sunli
a9ac598e2e Add secret attribute for arguments, they will not appear in the log. #463 2021-04-07 19:40:19 +08:00
Sunli
709bb49e07 Fix missing log output of Logger extension. 2021-04-05 21:47:45 +08:00
Sunli
81e053811b Improve Extensions. 2021-04-05 12:21:02 +08:00
Sunli
a4db80bdc9 Update subscription.rs 2021-04-04 19:51:41 +08:00
Sunli
824356d118 Rework Extension 2021-04-04 14:37:41 +08:00
Sunli
8a67781180 Add the BuildHasher generic parameter to dataloader::HashMapCache to allow custom hashing algorithms. #455 2021-04-02 18:22:06 +08:00
Sunli
fc91672ec4 Add SelectionField::alias and SelectionField::arguments methods. 2021-04-02 11:04:59 +08:00
Sunli
577fa5ded6 Fix Schema::sdl() does not include subscription definitions. #464 2021-04-01 20:56:14 +08:00
Sunli
40549303d4 Implements ScalarType for serde_json::Value. 2021-04-01 16:54:54 +08:00
Sunli
46927c3fc9 Add cache support for DataLoader. #455 2021-04-01 15:46:46 +08:00
Sunli
37cacf64dc Add name and visible attributes for Newtype macro for define a new scalar. #437 2021-03-31 19:28:19 +08:00
Sunli
662454c103 Remove SchemaBuilder::override_name method. #437 2021-03-31 16:54:57 +08:00
Sunli
e899885aa8 Add Request::disable_introspection method. #456 2021-03-30 11:59:57 +08:00
Sunli
5d641a79bd Clippy clean 2021-03-26 21:07:45 +08:00
Sunli
05911f3516 Rework Extension & TracingExtension & OpenTelemetryExtension 2021-03-26 12:03:10 +08:00
Denis Nevmerzhitskii
db6508f861 Fix chrono-tz integration 2021-03-24 19:09:08 +02:00
Sunli
c2c2868b64 Fix internal context missing when there's no connection_init frame. #451 2021-03-24 17:24:12 +08:00
Sunli
84fe7bfc57 Update dependencies 2021-03-24 12:25:03 +08:00
Sunli
279899559a Update docs 2021-03-22 13:27:24 +08:00
Sunli
54a1979c34 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
1c32a8afcb Now all features are not activated by default. 2021-03-22 10:39:17 +08:00
Sunli
7fb02d587e Add extension::OpenTelemetry. 2021-03-22 09:36:14 +08:00
Sunli
6e2fe32be0 Add SchemaBuilder::enable_subscription_in_federation method. #449 2021-03-20 17:22:18 +08:00
Sunli
e8fb9768d4 Fix tracing extension doesn't work with async code. ##448 2021-03-20 10:32:41 +08:00
Sunli
15036be792 Add ComplexObject macro. #355 2021-03-18 10:13:46 +08:00
Sunli
4c34494e52 Fix the problem that the validation does not work on some inline fragments. 2021-03-14 10:15:52 +08:00
Sunli
d37297bb06 Add DataLoader::loader method. #441 2021-03-12 15:41:10 +08:00
Sunli
4f47703118 Switch the async runtime used for testing to Tokio. 2021-03-12 12:47:24 +08:00
Sunli
272fea205d Add SchemaBuilder::override_name method. #437 2021-03-09 18:07:18 +08:00
Sunli
f6c0c33885 Add extends attribute for derive macros Subscription and MergedSubscription. 2021-03-09 15:12:14 +08:00
Sunli
197b3ae0a9 Export subscription type to Federation SDL. 2021-03-09 14:54:54 +08:00
Sunli
d0fe7fc23b Remove unnecessary Box from WebSocket messages. 2021-03-09 12:07:12 +08:00
Sunli
007b4e74db Execute _entity requests in parallel. #431 2021-03-07 16:37:34 +08:00
Taiki Endo
f3e488c6a6 Fix format of InputObject in SDL 2021-03-07 15:35:47 +09:00
Sunli
d723717e4b Add descriptions for the exported Federation SDL. 2021-03-06 08:38:19 +08:00
Sunli
4f2ea5ed50 Moved Variables from async_graphql::context::Variables to
`async_graphql::Variables`.
2021-02-28 09:37:42 +08:00
Sunli
4ebe0dd4cd Allow the deprecation attribute to have no reason. 2021-02-27 11:59:58 +08:00
Sunli
144ddb752c Clippy clean 2021-02-26 20:05:09 +08:00
Sunli
68b5ed680f Improve the performance of introspection queries. 2021-02-24 12:06:11 +08:00
Sunli
035f6d0a51 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
2953ed059c When introspection is disabled, introspection related types are no longer registered. 2021-02-23 12:49:41 +08:00
Sunli
5c66a9cdda Add support for Federation nested keys. 2021-02-21 23:06:26 +08:00
puh
f77b34356e Fix typo in multipart stream size limit calculations 2021-02-13 21:50:17 +03:00
Sunli
386b0b2876 Clippy clean 2021-02-13 09:55:53 +08:00
Sunli
490533b640 Rustfmt 2021-02-13 09:28:05 +08:00
Sunli
2d7627cd39 Fixed GraphQL over WebSocket Protocol does not support ConnectionError events. #406 2021-02-06 11:02:41 +08:00
Sunli
d193a138e3 Fixed the bug that can accept subscription requests during the initialization of WebSocket. 2021-02-06 09:24:00 +08:00
Sunli
b98e35995d Supports async websocket initializer. #393 2021-01-16 16:37:20 +08:00
Sunli
66aadd6319 Add NewType derive macro. #388 2021-01-15 10:29:03 +08:00
Sunli
b054fc0704 Add Send + Sync constraints for InputType, OutputType and SubscriptionType. 2021-01-14 12:41:59 +08:00
Sunli
f3f08c0067 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
5f2e0ae50d Clippy clean 2021-01-11 09:01:28 +08:00
Naaman Curtis
78a1ea1910 update response to correctly carry headers through (#384)
* update response to correctly carry headers through
2021-01-11 08:05:51 +08:00
Naaman
f92dda0271 Update http-headers to use http::HeaderMap 2021-01-10 10:57:28 +00:00
Sunli
099415fd42 Implements InputType for Box<T> and Arc<T>. #382 2021-01-10 13:48:18 +08:00
Sunli
5a29f74062 #[Object] on impl dyn TraitObj. #381 2021-01-10 11:21:47 +08:00
Sunli
1e449f9da6 Add Context::set_http_header method. #370 2021-01-10 08:06:48 +08:00
Ejez
50f6d2396c 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
65ca9ef605 Add Schema::federation_sdl method. #376 2021-01-06 11:01:13 +08:00
Sunli
c0ce4d4473 Clippy clean 2021-01-04 08:18:28 +08:00
Sunli
7a311f8476 Implements Debug for SelectionField. #364 2021-01-01 12:03:30 +08:00
Sunli
3e6339e630 Improve dataloader 2020-12-22 10:04:21 +08:00
Sunli
f58fe85822 Update docs. 2020-12-21 19:23:51 +08:00
Sunli
af1d501d75 Add dataloader 2020-12-21 13:33:36 +08:00
Sunli
6043543df7 Add custom complexity for subscription. 2020-12-19 18:39:33 +08:00
Sunli
0d76987f40 Add Analyzer extension. 2020-12-18 23:58:03 +08:00
Sunli
c49c3ffa07 Update docs. 2020-12-18 19:31:36 +08:00
Sunli
bf9e3ec578 Improve depth and complex. 2020-12-18 18:56:28 +08:00
Sunli
c6d8df0bdb Remove async-channel and async-mutex from dependencies. 2020-12-17 10:05:32 +08:00
Sunli
fe24247c9d Add the skip attribute to the InputObject fields. 2020-12-15 20:29:59 +08:00
Sunli
004ff93557 Update docs 2020-12-15 15:12:05 +08:00
Sunli
56b60a0f56 Update docs 2020-12-15 10:05:44 +08:00
Sunli
ba23761cb4 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
5c39d0197d Rename InputValueType to InputType and OutputValueType to OutputType. 2020-12-11 15:37:50 +08:00
Sunli
46d01db40f Merge branch 'master' into pr/350 2020-12-04 12:17:23 +08:00
Patrick Fernie
e25bcf1c98 use Sec-WebSocket-Protocol header to negotiate protocol 2020-12-03 16:16:07 -05:00
Patrick Fernie
0e711b782e rustfmt fixes 2020-12-02 08:41:12 -05:00
Patrick Fernie
7fb6d7bfbe 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
83b659bafb Add Context::field function. #346 2020-11-30 19:41:35 +08:00
Sunli
6cdd7e44a3 Update upload.rs 2020-11-30 13:47:00 +08:00
Sunli
3a0dda2224 Remove the dependency on bytes crate. 2020-11-30 13:43:17 +08:00
Sunli
9b10ebeab5 Fix the problem that the fields of the list are not merged correctly.#345 2020-11-27 10:26:23 +08:00
Sunli
997faa9c71 Fix #343 2020-11-23 12:43:31 +08:00
Sunli
044aa6e67c Implements Cow<T> for OutputValueType. #189 2020-11-08 09:22:50 +08:00
Sunli
d682483bb3 Update docs. 2020-11-07 21:30:40 +08:00
Sunli
79227c88ea Add TracingConfig for each request. #337 2020-11-07 21:23:22 +08:00
Koxiaet
6d5233f690 Don't duplicate type names in parsing error message 2020-11-07 06:05:59 +00:00
Sunli
5b5740e682 Export sdl for interface to implements another interface. #322 2020-11-07 08:49:08 +08:00
Sunli
ea7abf8495 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
d3a00571c0 Clippy clean 2020-11-07 08:24:17 +08:00
Sunli
a35d1fbfc9 Add Tracing::with_parent function. #337 2020-11-07 08:22:24 +08:00
Sunli
d95fbb42d9 Fixed a bug that websocket could not push data in a situation. 2020-11-06 22:20:12 +08:00
Sunli
03144a47b9 Fix the problem of scalar macro. 2020-11-03 13:50:22 +08:00
Sunli
af05c651b6 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-11-01 11:31:59 +08:00
Sunli
c0323002ea 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
2878de5b26 Validate the query hash before persisting queries 2020-10-31 13:53:53 -07:00
Sunli
5dc4223d5c Fix #327. 2020-10-28 09:39:19 +08:00
Sunli
e34f1351bd Add SchemaBuilder::override_description function. 2020-10-27 10:06:10 +08:00
Sunli
b3ac34a372 Add docs 2020-10-27 09:19:00 +08:00
Koxiaet
153a61d73a Rustfmt 2020-10-26 15:14:53 +00:00
Koxiaet
6d121db587 Merge pull request #324 from simplificAR/master
Modify interface SDL and bump Rocket
2020-10-26 15:13:26 +00:00
Daniel Wiesenberg
fdd9bd19dd 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
320d9eef50 Add use_type_description attribute for derive macros Object, Scalar and Subscription. 2020-10-26 21:34:05 +08:00
Sunli
5f68861926 Improve performance 2020-10-24 08:59:35 +08:00
Koxiaet
d2cbe82e44 Fix #323 2020-10-23 17:18:37 +01:00
Olexiy Buyanskyy
9f442aa750 removed not needed namespaces 2020-10-23 13:51:09 +03:00
Olexiy Buyanskyy
3ac150bef9 removed not needed namespaces 2020-10-23 13:49:00 +03:00
Olexiy Buyanskyy
baf67f3344 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
3bd3de3d09 Derive Serialize for Request and Deserialize for Response. 2020-10-23 08:26:48 +08:00
Olexiy Buyanskyy
bd966d5ba3 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
e1be5d5537 Fix typo 2020-10-22 10:11:47 +08:00
Sunli
4880c687ca 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
e3d693da28 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
83a0028085 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
a79ee02958 Fix macro hygiene 2020-10-16 20:21:46 +01:00
Koxiaet
79ad5540a1 Make macros hygienic 2020-10-16 11:37:59 +01:00
Koxiaet
12fe7445c7 Replace futures with futures_util 2020-10-16 07:49:22 +01:00
Koxiaet
6f47b11fed Reduce code duplication in container resolver 2020-10-16 07:12:21 +01:00
Koxiaet
ec8ec740be Avoid locking extensions mutex when possible 2020-10-16 06:52:52 +01:00
Koxiaet
1205d6e91e Remove itertools dependency 2020-10-16 06:37:48 +01:00
Sunli
6efc93e6b3 Update readme 2020-10-16 09:21:16 +08:00
Koxiaet
4caab70113 Require POST for GraphQL requests 2020-10-15 18:42:09 +01:00
Koxiaet
75be2c5d7f Require JSON content-type 2020-10-15 18:30:16 +01:00
Sunli
c99e0b2e54 Add Schema::names function. 2020-10-15 19:36:54 +08:00
Koxiaet
fff84a3170 Support GET requests in actix-web integration 2020-10-15 10:33:38 +01:00
Sunli
cac3d4c074 Fix a small bug. 2020-10-15 16:45:33 +08:00
Koxiaet
7c604c0c7c Rustfmt 2020-10-15 07:39:53 +01:00
Koxiaet
93c886af07 Make imports consistent 2020-10-15 07:38:10 +01:00
Koxiaet
cc115ff1a7 Rustfmt 2020-10-15 06:56:17 +01:00
Koxiaet
4eaa9cb86e Clean up crate root and improve context 2020-10-15 06:55:30 +01:00
Sunli
4fa4b25ce4 Fix can no longer derive Union for union types with lifetimes. #311 2020-10-15 08:53:17 +08:00
Sunli
f9f60d31ec Configurable case conversion. 2020-10-14 19:16:10 +08:00
Sunli
12f15f4815 2.0.2 2020-10-14 11:11:52 +08:00
Sunli
2d0c192df8 Fix a bug in the validator. 2020-10-14 10:54:46 +08:00
Sunli
6958202238 Update docs 2020-10-13 10:19:30 +08:00
Sunli
b35483f000 Add scalar macro. 2020-10-12 21:06:06 +08:00
Sunli
25af42ed81 Improve performance 2020-10-12 14:49:32 +08:00
Sunli
a1e57eb4a8 All merged objects will no longer be removed. #308 2020-10-12 11:04:01 +08:00
Sunli
c777150dcd Use value! instead of serde_json::json!. 2020-10-12 10:17:05 +08:00