Как установить заголовок Content-Length в нескольких маршрутов с использованием никелевого промежуточного ПО?

Насколько я понимаю, обработчики промежуточного программного обеспечения не подходят для этого, так как они работают до обработки запроса. Мое текущее решение:

router.get("/items/:id", middleware! { |request, mut response|
    // ...
    let data = json::encode(&data).unwrap();
    response.set(ContentLength(data.len() as u64));
    data
});

Мне это не нравится, потому что у меня много маршрутов, и мне придется вставлять этот код в каждый из них. Я хотел бы промежуточное программное обеспечение, которое будет называться после обработки моих маршрутов. Есть ли другой способ?

0 ответов

Другие вопросы по тегам