Как мне ответить из обработчика Rocket с типом контента application/hal+json?

У меня есть проект, написанный на Rocket с конечной точкой /foo который возвращает данные в application/json, Я использую rocket, rocket_codegen, serde и serde_json.

#[get("/foo")]
fn foo() -> Json {
    Json(json!({
        "foo": 1
    }))
}

Это хорошо работает, но мне нужно ответить application/hal+json поэтому я думаю, что мне нужно написать свой собственный ответ, и я потерпел неудачу. Как мне вернуть мой JSON с Content-Type application/hal+json?

1 ответ

Я получил некоторую помощь в чате проектов, и решение было:

#[get("/foo")]
fn foo() -> Content<Json> {
    let r = json!({
        "foo": 1
    })
    Content(ContentType::new("application", "hal+json"), Json(r))
}
Другие вопросы по тегам