Проблема с объявлением POST в Rust / Rocket - PullRequest
1 голос
/ 20 февраля 2020

Я пытаюсь написать простой API с ракетой, чтобы помочь себе изучить ржавчину, но я столкнулся с этой ошибкой после того, как попытался объявить маршрут POST:

error: malformed attribute
  --> src/main.rs:26:1
   |
26 | #[post("/producers", format="application/json", data =<"prod">)]
   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = help: expected syntax: #[post(key = value, ..)]

Вот объявление функции для этого маршрута :

#[post("/producers", format="application/json", data =<"producer">)]
fn post_producer(producer: Json<Producer>) -> String {
    return("hello".to_string());
}

И я импортирую эти макросы:

#![feature(proc_macro_hygiene, decl_macro)]

#[macro_use] extern crate rocket;
#[macro_use] extern crate serde_derive;
#[macro_use] extern crate rocket_contrib;

use rocket_contrib::json::Json;

У меня есть другой метод, объявленный для GET, но он работает нормально. Я провел некоторое исследование и нашел эти примеры и документацию: https://api.rocket.rs/v0.4/rocket_codegen/attr.post.html https://rocket.rs/v0.4/guide/requests/#format

Насколько я могу судить, я следую соглашениям, упомянутым в обе эти страницы, и я немного растерялся, где go отсюда. Есть какой-то синтаксис или импорт, который мне не хватает?

1 Ответ

0 голосов
/ 20 февраля 2020

Согласно документации, параметр data должен иметь <> внутри кавычек. Так что data="<prod>" должен решить проблему.

...