Добавление graphql_client в качестве зависимости при написании подключаемого модуля маршрутизатора приводит к разрыву транзитивной зависимости.
Я новичок в ржавчине, поэтому простите меня, если это вопрос пробела в знаниях, но его трудно найти в Google. Я настраиваю этот , чтобы помочь мне передавать данные авторизации между каждым подграфом. У меня есть подграф авторизации для сбора данных, поэтому маршрутизатор должен будет сделать запрос graphql к подграфу авторизации, а затем передать его. я выбрал
graphql_client
зависимость, потому что это та же самая, которую использует маршрутизатор apollo, и, похоже, она имеет большую поддержку по сравнению с другими клиентами rust graphql, однако, когда я добавляю эту зависимость, она ломает другую зависимость. Это шаги
- настроить пример проекта контекста -> проектhttps://github.com/apollographql/router/tree/v0.1.0-preview.6/examples/context
- добавьте их как зависимость в Cargo.toml
graphql_client = { version = "0.10.0", features = ["reqwest-blocking"]}
reqwest = { version = "0.11.10", features = ["blocking"]}
- запускать грузовую сборку
- См. ошибку
Ошибка
Compiling launchpad v0.1.0 (https://github.com/apollographql/rover.git?rev=94141242ba34cf00cde9630fc4a6dcd05d4fa5da#94141242)
error[E0433]: failed to resolve: use of undeclared type `HeaderMap`
--> /Users/macuser/.cargo/git/checkouts/rover-efd9f422be37a06b/9414124/crates/launchpad/src/introspect/runner.rs:30:26
|
30 | let mut header_map = HeaderMap::new();
| ^^^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use reqwest::header::HeaderMap;
|
error[E0433]: failed to resolve: use of undeclared type `HeaderName`
--> /Users/macuser/.cargo/git/checkouts/rover-efd9f422be37a06b/9414124/crates/launchpad/src/introspect/runner.rs:33:13
|
33 | HeaderName::from_bytes(header_key.as_bytes())?,
| ^^^^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use reqwest::header::HeaderName;
|
error[E0433]: failed to resolve: use of undeclared type `HeaderValue`
--> /Users/macuser/.cargo/git/checkouts/rover-efd9f422be37a06b/9414124/crates/launchpad/src/introspect/runner.rs:34:13
|
34 | HeaderValue::from_str(&header_value)?,
| ^^^^^^^^^^^ not found in this scope
|
help: consider importing this struct
|
1 | use reqwest::header::HeaderValue;
|
error[E0659]: `reqwest` is ambiguous
--> /Users/macuser/.cargo/git/checkouts/rover-efd9f422be37a06b/9414124/crates/launchpad/src/introspect/runner.rs:6:5
|
6 | use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
| ^^^^^^^ ambiguous name
|
= note: ambiguous because of multiple potential import sources
= note: `reqwest` could refer to a crate passed with `--extern`
= help: use `::reqwest` to refer to this crate unambiguously
note: `reqwest` could also refer to the module imported here
--> /Users/macuser/.cargo/git/checkouts/rover-efd9f422be37a06b/9414124/crates/launchpad/src/introspect/runner.rs:5:5
|
5 | use graphql_client::*;
| ^^^^^^^^^^^^^^^^^
= help: use `self::reqwest` to refer to this module unambiguously
Some errors have detailed explanations: E0433, E0659.
For more information about an error, try `rustc --explain E0433`.
error: could not compile `launchpad` due to 4 previous errors
Дерево зависимостей: маршрутизатор apollo -> восходящий канал -> ровер (ветвь = geal/launchpad)
2 ответа
Я разместил эту же проблему в репозитории apollo/router, и они сказали, что это скоро будет исправлено.
https://github.com/apollographql/router/issues/937#issuecomment-1114995491