Я сгенерировал заглушку сервера, используя swagger, и попытался выполнить шаги в README, чтобы реализовать собственный сервер с использованием созданной заглушки:
- Настройка нового проекта Rust, например, с
cargo init --bin
. - Вставьте
swagger_client
в массив members
в [рабочее пространство] в корне Cargo.toml
, например, members = [ "swagger_client" ]
. - Добавить
swagger_client = {version = "1.0.0", path = "swagger_client"}
в[dependencies]
в корне Cargo.toml
. - Скопируйте
[dependencies]
и [dev-dependencies]
из swagger_client/Cargo.toml
в корневой Cargo.toml
* [dependencies]
раздел. - Скопируйте все
[dev-dependencies]
, но только [dependencies]
, которые требуются для примера сервера. Они должны быть четко обозначены в комментариях. - Удалить
"optional = true"
из каждой из этих строк, если таковые имеются.
Каждый автоматически сгенерированный API будет содержать заглушку реализации иосновная точка входа, которая должна быть скопирована в ваш проект в первый раз:
cp swagger_client / examples / server.rs src / main.rs cp swagger_client / examples / server_lib / mod.rs src / lib.rs cpswagger_client / examples / server_lib / server.rs src / server.rs
Now
- С
src/main.rs
, удалите строку mod server_lib;
, раскомментируйте и заполните extern crate
строка с именем этого серверного ящика. - Переместите блок импорта, "требуемый библиотекой службы", с
src/main.rs
на src/lib.rs
и раскомментируйте. - Измените
let server = server::Server {};
строка let server = SERVICE_NAME::server().unwrap();
, где SERVICE_NAME
- это имя ящика сервера. - Запустите
cargo build
, чтобы проверить его сборку. - Выполните
cargo fmt
, чтобы переформатировать код. - Передайте результат перед дальнейшими изменениями (чтобы изменения в формате не спутались сваши собственные обновления).
Я предполагаю, что 'swagger_client', на который он ссылается, - это проект rust-server-server , который генерируется, так как он имеет Cargo.tomlэто написано в нем:
[package]
name = "swagger_client"
(Несмотря на то, что это сервер, он называет его swagger_client, что только добавляет путаницы)
Во-вторых, это относится к корню Cargo.toml. .. это корневой каталог Cargo.toml нового проекта, который я создал, или это самый высокий уровень Cargo.toml во всем каталоге? Я предполагаю, что речь идет о Cargo.toml проекта, который я только что создал.
В-третьих, самая раздражающая строка:
Измените let server = server:: Сервер {};строка `let server = SERVICE_NAME :: server (). unwrap ();где SERVICE_NAME - это имя ящика сервера
Я не могу найти эту строку в заглушке сервера, созданной swagger.
Так что я застрял, следуя его расплывчатым инструкциямв тупик. Кто-нибудь делал это с заглушкой сервера, созданной в Rust?