Le 24/08/2015 19:57, Jim Howard a écrit :
Darn. My only other bit of advice was "Are you sure Embperl is best for
this?"
No, I'm not sure it's "the best". But I'm sure it's possible (see below).
My company maintains a large Embperl app, but we use other tools for
REST/JSON (one of the reasons we are moving away from Embperl).
My application is rather large and I only needed to create a small
webservice so switching to another language just to write 20 lines of
code was bugging me.
Okay, so solution that works for me :
1. a) You must disable Embperl's form data processing by using
optDisableFormData. I did this in :
<Location /rest>
EMBPERL_OPTIONS 256
</Location>
1. b) For some mysterious reason, doing this (and it does the same if I
rather use a <Directory> directive), the EMBPERL_OBJECT_BASE that I set
for the whole virtualhost to "base.epl" is lost and I *MUST* use
"_base.epl". Forcing it in the <Location>/<Directory> does not work. So
I did a symbolic link :
ln -s base.epl _base.epl
2. Then, in order to read the POSTDATA, the only way I found was to dig
in Apache2::Request. Here is my code. It works. At least for the very
small use I have.
First install the module :
sudo apt-get install libapache2-request-perl
[-
use Apache2::Request;
use Apache2::RequestIO;
my $buffer;
$req_rec->read($buffer,9999);
warn "buffer::$buffer";
-]
I call it like this :
curl -i -X POST -d '{"name":"toto"}' http://omico.miaou/rest/notifent.html
And the logs say :
[Thu Aug 27 15:32:48 2015] [warn] [19141]ERR: 32: Warning in Perl
code: buffer::{"name":"toto"} at /.../omico/rest/notifent.html line 10.
Oh, and by the way, GET, PUT and DELETE also work.
Hope this helps.
---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscr...@perl.apache.org
For additional commands, e-mail: embperl-h...@perl.apache.org