Swagger серверная заглушка README не имеет смысла / не работает? - PullRequest
0 голосов
/ 21 октября 2019

Я сгенерировал заглушку сервера, используя 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...