Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Nov 25 17:37
    lgtm-com[bot] opened #664
  • Nov 25 09:33
    cyang-catalogicsoftware commented #662
  • Nov 25 09:22
    cyang-catalogicsoftware commented #662
  • Nov 25 03:46
    YundongGai commented #626
  • Nov 25 01:41
    SSDGADsss commented #662
  • Nov 24 08:03
    Peibohao commented #663
  • Nov 24 07:46
    csyJoy opened #663
  • Nov 24 04:25
    cyang-catalogicsoftware opened #662
  • Nov 24 03:49
    cyang-catalogicsoftware closed #658
  • Nov 23 03:47
    kekxv commented #661
  • Nov 23 00:46
    kekxv opened #661
  • Nov 22 13:28
    asiirtol opened #74
  • Nov 18 07:21
    djassie commented #630
  • Nov 17 03:32
    doufu3344 commented #599
  • Nov 17 03:31
    doufu3344 opened #660
  • Nov 17 02:01
    doufu3344 commented #639
  • Nov 16 00:27
    lganzzzo commented #652
  • Nov 15 23:48
    lganzzzo labeled #653
  • Nov 15 23:48
    lganzzzo commented #653
  • Nov 15 23:24
    lganzzzo commented #658
oat++
@oatpp_io_twitter
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?
cc90202
@cc90202
Pardon me, but I'm very newbie on websocket. I'm studying the oatpp websocket server and client example. 1) for Server example: how can I connect to the example endpoint ws? If I see the client example I see v3/channel_1/KEY. 2) regarding the client example KEY: how is calculated this key? thanks for any answer.
Emreiris
@Emreiris
Hi, I want to build oatpp with GCC compiler on Windows operation system. I tried to generate a build with CMake via command (cmake .. -G "MinGW Makefiles") and then (make install) but it only created library for linux. Long story in short, how can I compile oatpp with gcc?
oat++
@oatpp_io_twitter

Hello @IO-create

Can any one help me with how to upload and download files by using forms?
In Simple API Multipart Upload how to get data of file that is uploaded and store in database

You can find example code here - https://github.com/oatpp/oatpp/blob/master/changelog/1.3.0.md#better-multipart

1 reply