Мы выпустили 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.