Commit Graph

938 Commits

Author SHA1 Message Date
Erik Tesar
c18547e9e3
style: cargo fmt
please note that clippy probably will still fail, because this fork was created before c4cfa24e41
2021-09-02 13:37:18 +02:00
Erik Tesar
335e749429
fix: mark error types with Send and Sync 2021-09-02 13:35:34 +02:00
Erik Tesar
800eb4b10a
fix: ParseRequestError::InvalidFilesMap now is dyn std::error::Error 2021-09-02 12:21:34 +02:00
Sunli
94d2791601 Merge branch 'poem-integration' 2021-08-24 15:23:21 +08:00
Sunli
853cf65546 Add Poem integration. 2021-08-24 15:23:12 +08:00
Oliver Cooper
7dcea3c721 Ignore items flagged @skip in SelectionField and Lookahead 2021-08-20 10:49:20 +12:00
Diego Stratta
f6be0786a0 Implement From<MaybeUndefined<T>> for Option<Option<T>> 2021-08-13 19:24:04 -03:00
Julian Tescher
85fd626f30
Update opentelemetry to v0.16.x 2021-08-07 13:10:40 -07:00
Nicolai Unrein
23a0c84aa9 Remove unnecessary unwrap in multipart handler
The call to `unwrap` is not save at this point and will panic on connection errors/disconnects.
Instead a `ParseRequestError::InvalidMultipart(multer::Error)` will now get returned instead.
2021-08-03 11:59:23 +02:00
Sunli
5eafa69626 Add Axum integration. 2021-08-03 08:56:24 +08:00
Erik Tesar
c1cc30d421
decide which decoder to use based on content-type 2021-07-31 14:52:56 +02:00
Erik Tesar
661a416c00
always use cbor methode for deserialization 2021-07-28 17:37:47 +02:00
Erik Tesar
93e4bc5a2b
try to use cbor decoding 2021-07-27 21:37:30 +02:00
Miaxos
11c67e6cc3 misc: boxed error 2021-07-26 17:32:49 +00:00
cloudybyte
9fe4188196
try to add cbor support 2021-07-26 17:29:52 +02:00
Tim Maddison
ef70b913e4 Reformat 2021-07-23 10:09:02 +01:00
Tim Maddison
f9451c09b9 Change with_setting to accept any JSON value 2021-07-23 09:44:04 +01:00
Sunli
28d22dbe32 Add support for the list operator to the input value validator. #579 2021-07-20 15:16:34 +08:00
Sunli
1468cc91bb Implemented OutputType for Bytes. #569 2021-07-18 21:42:39 +08:00
Sunli
9046b288ad Sort the types in the exported SDL by name. #577 2021-07-17 10:13:42 +08:00
Sunli
d116dc2950 Make Schema::execute return HTTP headers when an error occurs. #572 2021-07-16 07:47:43 +08:00
Oliver Cooper
a1c9c6c8ba Replaced panicking From with TryFrom 2021-07-15 16:03:33 +12:00
Oliver Cooper
248136d0b6 Added From<&[SelectionField<'a>]> for Lookahead<'a> 2021-07-15 15:51:44 +12:00
Oliver Cooper
a868a9ab07 Changed Lookahead to support multiple fields 2021-07-15 13:16:55 +12:00
Sunli
abf4d5ffb6 Fix SDL print is not stable. #547 2021-07-12 11:14:26 +08:00
Rodgers
572b363798 Fix clippy error of map_err 2021-07-09 18:59:54 +07:00
Rodgers
55fcdf4c5d Keep map_err compatible 2021-07-09 08:20:30 +07:00
Rodgers
0417f4181a Update AND, OR, and MapErr logic. Update logic for object input 2021-07-08 23:43:12 +07:00
Rodgers
ab277494d7 Add is_valid_with_extensions 2021-07-08 21:37:38 +07:00
Rodgers
c0b5c22c64 Add report_error_with_extensions 2021-07-08 20:02:49 +07:00
Bram Hoendervangers
648515265b Add decimal scalar 2021-07-01 23:47:30 +02:00
Sunli
16755c8569 Implement From<SelectionField> for Lookahead. #557 2021-07-01 10:36:25 +08:00
Sunli
1b173b7588 Allows to get the actual field name and alias in ResolveInfo. #551 2021-06-29 09:30:26 +08:00
Sunli
7cb30db2f2 Fix the bug that MergedObject may cause panic. #539 2021-06-21 09:48:19 +08:00
Sunli
20ee79993c Clippy clean 2021-06-18 10:43:34 +08:00
Sunli
b3ca677c7f Update type.rs 2021-06-17 21:02:56 +08:00
Sunli
f5e3329e86 Implement InputType and OutputType for [T; N] array. 2021-06-17 10:39:27 +08:00
Sunli
a480b52df0 Update minimum supported Rust version to 1.51 2021-06-17 09:08:19 +08:00
Sunli
185e003fba Remove the static constraint of the receive_body and receive_batch_body functions. #544 2021-06-16 17:20:41 +08:00
Sunli
19669c11f0 Add serial attribute for MergedObject macro. #539 2021-06-16 15:08:33 +08:00
Sunli
2c1e31b8a4 Update merged_object.rs 2021-06-16 11:28:15 +08:00
Sunli
eecf709a2c Add serial attribute for SimpleObject and Object macros. #539 2021-06-15 08:53:26 +08:00
Yin Jifeng
29593c6d45 feat: support bson v2.0.0-beta 2021-06-11 11:00:19 +08:00
Sunli
8888897c51 Add the operation_name to Extension::execute method. 2021-06-10 10:17:33 +08:00
Sunli
553bf37abe Rework error propagation. #531 2021-06-08 10:05:30 +08:00
Sunli
c48ab7f17a Update CHANGELOG & Docs 2021-06-07 14:22:45 +08:00
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
Koxiaet
6dca9e57f1 Rustfmt 2020-10-15 06:56:17 +01:00
Koxiaet
ccae2d4ef5 Clean up crate root and improve context 2020-10-15 06:55:30 +01:00
Sunli
b054f1bf9f Fix can no longer derive Union for union types with lifetimes. #311 2020-10-15 08:53:17 +08:00
Sunli
bc5cf2f2a2 Configurable case conversion. 2020-10-14 19:16:10 +08:00
Sunli
b331681fe1 2.0.2 2020-10-14 11:11:52 +08:00
Sunli
53ef84c5e3 Fix a bug in the validator. 2020-10-14 10:54:46 +08:00
Sunli
184f8b169d Update docs 2020-10-13 10:19:30 +08:00
Sunli
8b1ddcdc0b Add scalar macro. 2020-10-12 21:06:06 +08:00
Sunli
6dd9483762 Improve performance 2020-10-12 14:49:32 +08:00
Sunli
64e85b33c3 All merged objects will no longer be removed. #308 2020-10-12 11:04:01 +08:00
Sunli
b0ceb58163 Use value! instead of serde_json::json!. 2020-10-12 10:17:05 +08:00
Sunli
a575c9fe1e Add value! macro. 2020-10-12 09:28:51 +08:00
Sunli
2ca10e0ded Add parse_value and from_value funcntions. 2020-10-11 20:24:31 +08:00
Sunli
10cd868f4c Some improvements. 2020-10-10 16:28:07 +08:00
Aurelien Foucault
dff328a85c Add eq for errors 2020-10-08 15:32:37 +02:00
Sunli
299a40bc4e Update docs. 2020-10-07 13:40:03 +08:00
AurelienFT
e7b4ad8f2f
Rework guard (#296)
Rework guard #293
2020-10-06 17:16:51 +08:00
Sunli
e47360d1a2 Fix typo. #297 2020-10-04 07:49:56 +08:00
Sunli
e263c755e2 Restore the original error extension implementation. 2020-10-02 14:56:10 +08:00
sunli
8aa406575b Remove useless code. 2020-10-01 18:48:11 +08:00
Sunli
f33ab0af01 Inline ContainerType, EnumType, ScalarType to docs. 2020-10-01 10:05:16 +08:00
Sunli
19f05597e0 Merge master 2020-10-01 09:40:04 +08:00
Sunli
1e30712726 Merge branch 'master' into rework-errors 2020-10-01 09:39:47 +08:00
Sunli
e6108352b9 Merge branch 'master' into rework-errors 2020-10-01 09:07:19 +08:00
Koxiaet
b61088089b Fix compilation and tests 2020-09-30 19:40:17 +01:00
Koxiaet
ab82460b81 Merge master 2020-09-30 18:24:24 +01:00
Sunli
28cd37115f Update docs. 2020-09-30 11:55:56 +08:00
Sunli
fd4c2b193b Added Apollo persisted queries extension. #280 2020-09-30 11:37:12 +08:00
Sunli
6492629e71 Improve trait for GraphQL types. 2020-09-30 07:45:48 +08:00
Koxiaet
2ddaaaa07f Rework errors
This completely overhauls the error system used in async-graphql.
- `Error` has been renamed to `ServerError` and `FieldError` has been
renamed to just `Error`. This is because `FieldError` is by far the most
common error that users will have to use so it makes sense to use the
most obvious error name. Also, the current name didn't make sense as it
was used for things other than field errors, such as the data callback
for websockets.
- `ServerError` has been made completely opaque. Before it was an enum
of all the possible errors, but now it just contains an error message,
the locations, the path and extensions. It is a shame that we lose
information, it makes more sense as _conceptually_ GraphQL does not
provide that information. It also frees us to change the internals of
async-graphql a lot more.
- The path of errors is no longer an opaque JSON value but a regular
type, `Vec<PathSegment>`. The type duplication of `PathSegment` and
`QueryPathSegment` is unfortunate, I plan to work on this in the future.
- Now that `ServerError` is opaque, `RuleError` has been removed from
the public API, making it simpler.
- Additionally `QueryError` has been completely removed. Instead the
error messages are constructed ad-hoc; I took care to never repeat an
error message.
- Instead of constructing field-not-found errors inside the
implementations of field resolvers they now return `Option`s, where a
`None` value is representative of the field not being found.
- As an unfortunate consequence of the last change, self-referential
types based on the output of a subscription resolver can no longer be
created. This does not mean anything for users, but causes lifetime
issues in the implementation of merged objects. I fixed it with a bit of
a hack, but this'll have to be looked into further.
- `InputValueError` now has a generic parameter - it's kind of weird but
it's necessary for ergonomics. It also improves error messages.
- The `ErrorExtensions` trait has been removed. I didn't think the
`extend` method was necessary since `From` impls exist. But the
ergonomics are still there with a new trait `ExtendError`, which
is implemented for both errors and results.
- `Response` now supports serializing multiple errors. This allows for
nice things like having multiple validation errors not be awkwardly
shoved into a single error.
- When an error occurs in execution, data is sent as `null`. This is
slightly more compliant with the spec but the algorithm described in
<https://spec.graphql.org/June2018/#sec-Errors-and-Non-Nullability> has
yet to be implemented.
2020-09-29 20:06:44 +01:00
Sunli
af2e480b70 Added context for Extension. 2020-09-29 20:47:37 +08:00
Sunli
8c5d8f0324 Rework async-graphql-derive. #288 2020-09-29 16:06:10 +08:00
Sunli
884bf77087 Update docs 2020-09-28 11:15:37 +08:00
Sunli
3f654127b8 Clippy clean. 2020-09-27 19:29:23 +08:00
Sunli
4bbb30b2ae Update schema.rs 2020-09-27 19:13:12 +08:00
Sunli
bf42c4e915 Fixed variables cannot deserialize from null. #282 2020-09-27 19:10:49 +08:00
Sunli
e9efad4479 Fix the problem when generating Federation SDL. #283 2020-09-27 18:49:04 +08:00
Sunli
397650bb0d Update docs 2020-09-27 18:22:01 +08:00
Sunli
17240f1fed Add some type detection to make the defined schema conform to the GraphQL specification. #282 2020-09-27 15:35:05 +08:00
Sunli
9b4fc7d922 Make Object and Subscription macros support #cfg(...) attribute. #281 2020-09-27 10:20:20 +08:00
Sunli
39f8a4fa17 Invoke extensions for execute_schema. 2020-09-26 15:52:59 +08:00
Sunli
9333583483 Improve the error message of Tracing extension. 2020-09-26 12:35:28 +08:00
Sunli
e44cb6886f Update readme 2020-09-26 11:25:21 +08:00
Sunli
f4df7d57f8 When an error occurs in the query, the Tracing extension can output the error message. 2020-09-26 09:49:46 +08:00
Sunli
2ac69e2e29 Add StringNumber type. 2020-09-26 09:22:54 +08:00
Sunli
1cab6d0186 Remove unnecessary features for tide and warp integrations. 2020-09-26 08:35:17 +08:00
Koxiaet
38c9c718d6 Reduce code duplication in batches in actix web 2020-09-25 17:38:12 +01:00
Sunli
2c693e1245 Make uuid to optional dependent. 2020-09-25 15:40:04 +08:00
Sunli
68965e5a0c Add data_XXX methods to ResolveInfo and remove context field from ResolveInfo. #260 2020-09-25 15:26:29 +08:00
Sunli
09eea044eb Improve tracing 2020-09-25 15:01:55 +08:00
Sunli
3d749f329f
Merge pull request #275 from simplificAR/export_description
Export description with `Registry::export_sdl`
2020-09-24 09:21:47 +08:00
Koxiaet
b871be2731 Rustfmt and write ARCHITECTURE.md 2020-09-23 20:23:15 +01:00
Koxiaet
635a1a5ed7 Publicize resolver utils and move Scalar there 2020-09-23 19:50:35 +01:00
Koxiaet
7f35fbca4c Big improvements to tide integration 2020-09-23 18:30:03 +01:00
Daniel Wiesenberg
225f46d180
Run Rustfmt and Clippy 2020-09-23 15:54:33 +02:00
Daniel Wiesenberg
7b53e856e0
Export description with Registry::export_sdl 2020-09-23 15:47:04 +02:00
Sunli
e3125b2d2d Add Schema::sdl method. #191 2020-09-23 14:14:22 +08:00
Koxiaet
203ea4ad64 Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-22 20:03:33 +01:00
Koxiaet
0880be3e0b Move some validations to parser
This commit moves the single anonymous and duplicated operation name
validation rules into the parser, allowing for a nicer format to be
exposed by it. It also adds better error messages to the parser.
2020-09-22 19:59:48 +01:00
Sunli
fa10a55745 Add Request::extension method. #271 2020-09-21 15:53:07 +08:00
Sunli
0259a35782 Implement Serialize/Deserialize for MaybeUndefine<T>. 2020-09-21 15:22:45 +08:00
Sunli
37e21c54fa Add BatchRequest support for actixweb and warp integrations. 2020-09-21 14:57:33 +08:00
Sunli
559e7c41b3
Merge pull request #272 from mwilliammyers/feat/maybe-undefined
Remove Deserialize impl from MaybeUndefined
2020-09-21 07:56:47 +08:00
William Myers
90b2cfdaea
Remove Deserialize impl from MaybeUndefined
Change Serialize implementation to use the `untagged` attribute.
This handles the common case of directly serializing `MaybeUndefined`,
but deserializing into an `Option<T>`. We could add a more sophisticated
custom deserialize implementation later.
2020-09-20 13:22:51 -07:00
Sunli
e21fe02cac Make ObjectType is public. 2020-09-20 15:47:17 +08:00
Sunli
7bb67f135e Fix docs 2020-09-20 13:34:49 +08:00
Sunli
707b8e5930 Merge branch 'master' of https://github.com/async-graphql/async-graphql 2020-09-20 13:28:25 +08:00
Sunli
5bfb992ad7 Fix enum strings in query variables are not converted to proper enums. #270 2020-09-20 13:28:18 +08:00
William Myers
d3f5c56c6d
Add more trait implementations to MaybeUndefined
Closes #267
2020-09-19 14:10:54 -07:00
Koxiaet
f873c9ac5a Warp: Replace BoxedFilter with impl Filter 2020-09-19 18:10:46 +01:00
Koxiaet
ec49d4ec56 Reexport async-graphql-parser 2020-09-19 06:14:59 +01:00
Sunli
b0690cae8b Fix compiling without features 2020-09-18 15:14:40 +08:00
Sunli
019241ac22 2.0.0-alpha.12 2020-09-18 15:05:07 +08:00
Sunli
c98b269e50 Add Upload::into_async_read with blocking 2020-09-18 14:32:00 +08:00
Sunli
322e296a24 Remove the GQL prefix of all macros. #208 2020-09-18 09:10:24 +08:00
Koxiaet
3c04411780 Remove code duplication for batch requests 2020-09-17 19:43:03 +01:00
Koxiaet
5cf527aeef Merge branch 'master' of github.com-koxiaet:async-graphql/async-graphql into master 2020-09-17 19:23:15 +01:00
Koxiaet
88be6bca61 Improve websockets 2020-09-17 19:22:54 +01:00
Sunli
acc1a6f515 Add support for batch queries. 2020-09-17 19:54:12 +08:00
Sunli
de3f0937b0 Some improvements. 2020-09-17 11:22:09 +08:00
Sunli
dc77e7f262 Update docs 2020-09-17 09:03:36 +08:00
Sunli
c3d70b0553 Add test for ErrorExtensions. 2020-09-17 08:47:41 +08:00
Koxiaet
f82322045e Document features 2020-09-15 19:32:13 +01:00
Sunli
509c92a11f Move http::websocket::create and http::websocket::create_with_initializer function to http::WebSocketStream. 2020-09-15 20:07:59 +08:00
Sunli
ba03ccf3ea Rework websocket
a
2020-09-15 11:49:07 +08:00
Sunli
059128e9c5 http::websocket::create function now returns the WebSocketStream type. 2020-09-15 11:19:00 +08:00
Sunli
d6eea10816 Remove InputObjectType and add InputValueType/OutputValueType to docs 2020-09-15 09:31:55 +08:00
Koxiaet
84be87aab6 Rustfmt 2020-09-14 20:20:15 +01:00
Koxiaet
91f059f9ee Fix compiling without features 2020-09-14 20:16:41 +01:00
Koxiaet
fbcae8aa29 Improved serialize_resp 2020-09-14 19:56:12 +01:00
Koxiaet
a86c3a86b8 Remove and feature-gate dependencies 2020-09-14 19:38:41 +01:00
Sunli
3233f3638c Implement Type for more stdlib collection types #189
Implement InputValueType/OutputValueType for HashSet<T>/BTreeSet<T>/VecDeque<T>/LinkedList<T>
Implement ScalarType for char/NonZero*/HashMap<String,T>/BTreeMap<String, T>
2020-09-14 20:06:44 +08:00
Sunli
fad20a80e9 Update README.md 2020-09-14 14:13:43 +08:00
Sunli
6e3dc9721b Improve websocket 2020-09-14 10:44:56 +08:00
Sunli
134ef7ad56 Fix the problem that the compilation fails when the compilation parameter is --no-default-features.
Update mod.rs
2020-09-14 09:54:55 +08:00
Sunli
d67a511a07 2.0.0-alpha.5 2020-09-14 09:46:22 +08:00
Sunli
bbcfade50e Improve registry 2020-09-14 08:37:15 +08:00
Sunli
ae46e91b08 Remove unnecessary memory allocation in websocket. 2020-09-14 08:25:00 +08:00
Koxiaet
d404e756bc Rework subscriptions
The main change in this commit is changing the return type of
SubscriptionType::create_stream from
Future<Result<Stream<Result<Response>>>> to just Stream<Result<Json>>. I
also allowed the returned stream to borrow from self and context.
2020-09-13 18:52:36 +01:00
Koxiaet
91ec3486ce Support !Unpin in receive_body with pin project 2020-09-13 11:49:07 +01:00
Koxiaet
863d57a4b0 Remove SimpleBroker 2020-09-13 10:47:28 +01:00
Koxiaet
f204841d1f Restructure types module 2020-09-13 10:38:19 +01:00
Koxiaet
1af9ce5b95 Remove unused idx parameter on subscription 2020-09-13 08:13:56 +01:00
Koxiaet
42c3cfc17c Improve lookahead 2020-09-13 08:02:14 +01:00