Dinesh Premalal wrote:
Hi Subra,
"Subra A Narayanan" <[EMAIL PROTECTED]> writes:
So the solution looks like writing an Apache module (I have never written one
before) which receives the REST request, translates the request to a SOAP
request and then forwards it on to Axis2/c. But this is exactly what Axis2/C is
also doing.
Yes, that is also a possibility. However I think it will be quite
arduous to maintain two apache modules in the long run. I would rather
like improving Axis2/C REST support.
I too think that it would be much simpler to improve the current REST
support rather than to implement another Apache module.
If you look at the apache module implementation, in source file
src/core/transport/http/server/apache2/apache2_worker.c, there is a
method named axis2_apache2_worker_process_request. If you have a look at
this, then you can understand how GET and POST requests are dealt with
and in turn, this function calls the methods
axis2_http_transport_utils_process_http_get_request and
axis2_http_transport_utils_process_http_post_request methods deal with
detailed request processing, including REST stuff. So if you want PUT
and DELETE you can implement new functions like,
axis2_http_transport_utils_process_http_put_request and
axis2_http_transport_utils_process_http_delete_request. Also, if you
want to deal with the media types, before control is passed on to
Axis2/C, I hope you can do that within
axis2_apache2_worker_process_request function, as you have access to the
request information there.
The above are just few suggestions, to use the current apache module
code and improve that to deal with more REST stuff. However, I did not
look into that in detail. If you try that and have more questions please
feel free to ask this list.
Thanks,
Samisa...
I want to start looking in to improving REST support in Axis2/C. Is
it doable?
Yes, It is.
Am I missing something very obvious which would prevent us from implementing
such support in Axis2? If not please let me know as to where I should start
looking in the Axis2 source.
You could start at looking HTTP transport I guess. If you could debug
echo_rest sample, it will be helpful to understand the underlying
logic.
thanks,
Dinesh
--
Samisa Abeysinghe : WSO2 WSF/C
"http://wso2.org/projects/wsf/c?WSO2 Web Services Framework/C - Open source C library for providing and consuming Web services"
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]