Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 07 15:26
    WoojtekP opened #676
  • Dec 07 12:34
    DanielHerchenbach opened #675
  • Dec 07 12:04
    DanielHerchenbach opened #674
  • Dec 07 09:08
    Inujel edited #673
  • Dec 07 09:06
    Inujel opened #673
  • Dec 07 03:24
    YundongGai commented #163
  • Dec 06 05:14
    Vadim6446 opened #672
  • Dec 05 23:51
    kekxv closed #661
  • Dec 05 06:44
    Naamanly edited #75
  • Dec 05 06:42
    Naamanly opened #75
  • Dec 04 00:10
    kekxv commented #295
  • Nov 30 20:08
    DanielHerchenbach commented #666
  • Nov 30 16:44
    DanielHerchenbach commented #666
  • Nov 30 16:03
    DanielHerchenbach edited #671
  • Nov 30 16:02
    DanielHerchenbach edited #671
  • Nov 30 15:58
    DanielHerchenbach opened #671
  • Nov 30 14:33
    DanielHerchenbach opened #670
  • Nov 30 13:11
    DanielHerchenbach opened #669
  • Nov 30 12:53
    DanielHerchenbach opened #668
  • Nov 30 12:21
    DanielHerchenbach commented #666
oat++
@oatpp_io_twitter

Hello @kevinbenson1 ,

Hello everyone. Is there a plan to tag a new release of oat++ anytime soon? There are some changes that have been committed since 1.3.0 that I would like to pull into our software. If it will be a while, I will just upgrade to 1.3.0 and add them as patches. In general, is additional testing performed on tagged releases? If not, maybe I will just pull in the latest trunk.

In the nearest two month there will be no new tag.
I suggest taking the latest master.
While we do additional testing on tag-builds, we encourage community to use the latest master and report bugs. - Crowd testing:)

1 reply

Hello @EnderTheCoder ,

Guys I was trying to use oatpp ADD_CORS()
it didn't seem to work on my reponse

From your screenshot - there is a response from oatpp server withcontent-type: application/json`.
So it worked.

oat++
@oatpp_io_twitter
Since there is a connection: close header (in the current implementation oatpp closes connection on unhandled errors) I assume that your service responded with error
But it's not the CORS problem
EnderTheCoder
@EnderTheCoder
okay, i got it, thanks for your help
oat++
@oatpp_io_twitter
Hello @emrahhisir , please format your post as a code snippet (see markdown formatting). Otherwise it's hard to read it
Emrah Hışır
@emrahhisir

Hi everyone,
I have a DTO class which consists of fields with other DTO class and I want to access these fields recursively.

Example DTO class:

class DTOSample : public oatpp::DTO {

  DTO_INIT(DTOSample, DTO /* Extends */)

  DTO_FIELD(Vector<Object<DTOSampleInner>>, inner);
};

class DTOSampleInner : public oatpp::DTO {

  DTO_INIT(DTOSampleInner, DTO /* Extends */)

  DTO_FIELD(String, name);
  DTO_FIELD(String, value);
};

accessFields(const oatpp::data::mapping::type::DTOWrapper<T> dto) {
    auto object = static_cast<oatpp::BaseObject *>(dto.get());
    auto fields = dto.getPropertiesList();
    for (auto const &field : fields) {
        auto value = field->get(object);
        // How can access name and value fields of DTOSampleInner
    }
}

Thanks.

oat++
@oatpp_io_twitter

Hello @emrahhisir ,

for (auto const &field : fields) {
  auto value = field->get(object);
  if(value.getValueType() == oatpp::data::mapping::type::__class::AbstractObject::CLASS_ID.id) {
          auto dispatcher = static_cast<const type::__class::AbstractObject::PolymorphicDispatcher*>(baseType->polymorphicDispatcher);
          const auto& map = dispatcher->getProperties()->getMap(); // <--- And again you get the properties map
  }
}

And since you have Vector of objects - you have first access items of the vector

Best place to search for code examples on this matter - is json serializer:
Emrah Hışır
@emrahhisir
Thanks @oatpp_io_twitter. I customized code in Serializer.cpp.
EnderTheCoder
@EnderTheCoder
Hello everyone. I'm looking for help with oatpp-postgresql model. I did not query with any Float32 param, but an error was given tells that it had problems with Float32 parsing. Do you have any ideas about this?
Here's my QUERY:
image.png
db usage:
image.png
error given by orm framework:
image.png
server=oatpp/1.3.0
code=500
description=Internal Server Error
message=[oatpp::postgresql::mapping::Deserializer::deserializeFloat32()]: Error. Unknown OID.
here's the table:
image.png
I'm pretty sure all data types I used are supported by oatpp-postgresql framework.
EnderTheCoder
@EnderTheCoder
Also, another query with this table worked well. So I don't think it's a problem with the table.
EnderTheCoder
@EnderTheCoder
Never mind, it's a table problem. Sorry for my stupid mistake.
Jan Weßling
@frosk1

Hey,

does the c++ web framework oat++ needs to be serverd via an external webserver over CGI/ FastCGI or does oat++ comes with its own http web server?

oat++
@oatpp_io_twitter
Hello @frosk1 , Oat++ comes with its own http web server
Jan Weßling
@frosk1
thx @oatpp_io_twitter understood. Are there any benchmarks of this http web server vs some other languages like python (gunicorn server, uswgi server, etc.) or go( gin http server) ?
Fabrice Aeschbacher
@fabrice.aeschbacher_gitlab
I'm looking for a way to redirect http requests (port=80) to my oatpp https server listening on port 443. To be able to send a Status::CODE_302 response, the oatpp server should listen on ports 80 and 443. What is the recommended method for doing this ?
oat++
@oatpp_io_twitter

Hey @frosk1 ,

thx @oatpp_io_twitter understood. Are there any benchmarks of this http web server vs some other languages like python (gunicorn server, uswgi server, etc.) or go( gin http server) ?

For oatpp 1.1.0 - https://www.techempower.com/benchmarks/#section=data-r21&test=json
Also you may search on github - there must be some repos with benchmarks like this one https://github.com/memen45/server_benchmark

Hello @fabrice.aeschbacher_gitlab ,

I'm looking for a way to redirect http requests (port=80) to my oatpp https server listening on port 443. To be able to send a Status::CODE_302 response, the oatpp server should listen on ports 80 and 443. What is the recommended method for doing this ?

Yes, you have to listen on both ports.
And you have to add Interceptor on port 80 to redirect to 443 - like here https://github.com/oatpp/website/blob/master/server/main/src/SitePath.hpp#L46

How to setup component - you can find here - https://github.com/oatpp/website/blob/master/server/main/src/AppComponent.hpp

1 reply
bturksonmez
@bturksonmez
Hello all,
image.png
What are the prerequisites for MacOS?
I could not find it in the installation documentation.
Jan Weßling
@frosk1
Thx for the response
Ivansete
@Ivansete

Morning!
In order to reduce the number of warnings (possible loss of data). Is it a good idea to apply the next change in oatpp/core/base/Environment.hpp ?

-typedef intptr_t v_buff_size;
+typedef v_int64 v_buff_size;

cc90202
@cc90202
yanalex66
@yanalex66

Hi Everyone

A client can send a request that requires significant time (minutes) and resources, and then disconnect before the response is ready.

Is there a smart way to detect on I/O level that the connection that initiated the request is closed and pass this information to the request executor?

yanalex66
@yanalex66
I use async controller
oat++
@oatpp_io_twitter

Hello @Ivansete ,

In order to reduce the number of warnings (possible loss of data). Is it a good idea to apply the next change in oatpp/core/base/Environment.hpp ?
-typedef intptr_t v_buff_size;
+typedef v_int64 v_buff_size;

Yes it should be safe.
Are you on 32bit platform?

oat++
@oatpp_io_twitter

Hello @yanalex66 ,

A client can send a request that requires significant time (minutes) and resources, and then disconnect before the response is ready.
Is there a smart way to detect on I/O level that the connection that initiated the request is closed and pass this information to the request executor?

Yes, on I/O level it's possible. However, by that moment oatpp had already delegated processing to Endpoint, and oatpp will not terminate that processing until it's finished.

oat++
@oatpp_io_twitter
You may try using WebSocket instead of HTTP.
In this case you will receive an actual notification that the client dropped.
Since WebSocket is event-based protocol (unlike http) you can receive messages in the middle of your processing.
yanalex66
@yanalex66

Hello @oatpp_io_twitter

Thanks for your response.

I'll ponder on the idea of WebSocket. A good idea actually but my clients are HTTP ones (at least, for now).

Yes, on I/O level it's possible. However, by that moment oatpp had already delegated processing to Endpoint, and oatpp will not terminate that processing until it's finished.

I'll try then to find a way to signal the endpoint that response is not required and stop the request processing.

so to stop the request processing not by the framework but by the mechanism that calculates the response
oat++
@oatpp_io_twitter
:thumbsup:
IO-create
@IO-create
Can any one help me with how to upload and download files by using forms?
IO-create
@IO-create
In Simple API Multipart Upload how to get data of file that is uploaded and store in database
jm130794
@jm130794
Hello,
What is the role of the BUNDLE macro in a controller?