Мы выпустили RESTinio 0.4.8!

2018.08.21

Мы добавили в RESTinio очередную порцию новой и полезной функциональности.

Что нового:

  • Добавлены нотификаторы о статусе записи данных. Нужно определить был ли ответ отправлен и каков статус записи данных в сокет? Тогда используйте нотификаторы:
    int main()
    {
      restinio::run(
        restinio::on_this_thread<>()
          .port(8080)
          .address("localhost")
          .request_handler([](auto req) {
            return req->create_response()
                     .set_body("Hello, World!")
                     .done( [](const auto & ec ){
                       std::cout << "Sending response status: " << ec << std::endl;
                     });
          }));
    
      return 0;
    }
    
  • Добавлена поддержка datasizeable типов в качестве буфера. Теперь с определенными ограничениями в качестве буфера можно использовать любой тип.
    // Blob for image, wraps a Image magick Blob
    // that is already a smart pointer.
    struct datasizable_blob_t
    {
      // Datasizeable interface:
      const void * data() const noexcept { return m_blob.data(); }
      std::size_t size() const noexcept { return m_blob.length(); }
    
      //! Image data blob.
      Magick::Blob m_blob;
    };
    
    // Somewhere in handler:
    datasizable_blob_t body;
    image.write( &(body.m_blob) ); // Writes image binary data to blob.
    resp.set_body( body );
  • В логирование добавлено сообщение со статусом (status line) отправляемых ответов:
    [2018-08-20 21:46:58.482] TRACE: [connection:1] start connection with 127.0.0.1:53908
    [2018-08-20 21:46:58.482] TRACE: [connection:1] start waiting for request
    [2018-08-20 21:46:58.482] TRACE: [connection:1] continue reading request
    [2018-08-20 21:46:58.482] TRACE: [connection:1] received 78 bytes
    [2018-08-20 21:46:58.482] TRACE: [connection:1] request received (#0): GET /
    [2018-08-20 21:46:58.482] TRACE: [connection:1] append response (#0), flags: { final_parts, connection_keepalive }, write group size: 2
    [2018-08-20 21:46:58.482] TRACE: [connection:1] start next write group for response (#0), size: 2
    [2018-08-20 21:46:58.482] TRACE: [connection:1] start response (#0): HTTP/1.1 200 OK
    [2018-08-20 21:46:58.482] TRACE: [connection:1] sending resp data, buf count: 2, total size: 192
    
  • В построители ответов (response builders) добавлены перегрузки сеттеров с квалификатором rvalue.

Основной репозиторий RESTinio находится на bitbucket (есть github зеркало).

Архивы зафиксированных версий находятся в download section.

Документация находится здесь.

Также доступна Doxygen документация: RESTinio-0.4 API Reference.

Если вам чего-то не хватает в RESTinio и вы хотели бы увидеть в RESTinio нужную вам функциональность, то можете написать нам об этом на info@stiffstream.com.