Мы выпустили RESTinio 0.4.7!
2018.07.12
Мы постарались сделать работу с RESTinio еще более удобной. Также мы внесли несколько изменений, минимизирующих возможность совершения ошибок при работе с RESTinio.
Что нового:
- Добавлена поддержка заголовочных полей из списка `Provisional Message Header Field Names` (см. https://www.iana.org/assignments/message-headers/message-headers.xml).
Ранее приходилось писать вот так:resp.append_header( "Access-Control-Allow-Origin", "*" );
Теперь можно писать так:resp.append_header( restinio::http_field_t::access_control_allow_origin, "*" )
- Интерфейс http_header_field_t расширен getter-ами и setter-ами. Это привносит небольшую несовместимость с предыдущими версиями в случаях, когда имеются обращения к полям http_header_field_t напрямую, которые теперь скрытые (private) члены данных.
- Добавлена еще одна перегрузка ``base_response_builder_t::append_header()``, которая принимает аргумент типа http_header_field_t:
// Global variable const http_header_field_t cached_server_hf{restinio::http_field_t::server, "My server"}; // In some function. // Use cached value and avoid extra // restinio::http_field_t to string representation lookup. resp.append_header( cached_server_hf );
- Добавлена функция ``restinio::make_date_field_value()`` которая возвращает строку строку с датой и временем в формате нужном для заголовочных полей (например ``Fri, 15 Jun 2018 13:58:18 GMT``).
- В класс ``sendfile_t`` добавлена метаинформация о файле. Подробне смотри file meta.
Теперь проще получить время последней модификации файла:auto sf = restinio::sendfile( file_path ); auto modified_at = restinio::make_date_field_value( sf.meta().last_modified_at() ); req->create_response() // ... .append_header( restinio::http_field::last_modified, std::move( modified_at ) ) // ...
- Добавлен класс ``http_status_line_t`` и другие вспомогательные классы, с помощью этого класса проще задавать статус для HTTP-ответа. Подробне смотри status line. Это избавляет от необходимости задавать status_code и reason_phrase вручную для стандартных кодов ответа:
req->create_response( restinio::status_not_found() ); // 404 Not Found req->create_response( restinio::status_bad_request() ); // 400 Bad Request req->create_response( restinio::status_not_implemented() ); // 501 Not Implemented
Основной репозиторий RESTinio находится на bitbucket (есть github зеркало).
Архивы зафиксированных версий находятся в download section.
Документация находится здесь.
Если вам чего-то не хватает в RESTinio и вы хотели бы увидеть в RESTinio нужную вам функциональность, то можете написать нам об этом на info@stiffstream.com.