[openstack-dev] [pecan] [WSME] Different content-type in request and response
Nikolay Makhotkin
nmakhotkin at mirantis.com
Tue Nov 25 17:06:22 UTC 2014
Hi, folks!
I try to create a controller which should receive one http content-type in
request but it should be another content-type in response. I tried to use
pecan and wsme decorators for controller's methods.
I just want to receive text on server and send json-encoded string from
server (request has text/plain and response - application/json)
I tried:
class MyResource(resource.Resource):
id = wtypes.text
name = wtypes.text
class MyResourcesController(rest.RestController):
@wsexpose(MyResource, body=wtypes.text)
def put(self, text):
return MyResource(id='1', name=text)
According to WSME documentation (
http://wsme.readthedocs.org/en/latest/integrate.html#module-wsmeext.pecan)
signature wsexpose method as following:
wsexpose(*return_type*, **arg_types*, ***options*)
Ok, I just set MyResource as return_type and body to text type. But it
didn't work as expected:
http://paste.openstack.org/show/138268/
I looked at pecan documentation at
https://media.readthedocs.org/pdf/pecan/latest/pecan.pdf but I didn't find
anything that can fit to my case.
Also, I tried:
class MyResource(resource.Resource):
id = wtypes.text
name = wtypes.text
class MyResourcesController(rest.RestController):
@expose('json')
@expose(content_type="text/plain")
def put(self):
text = pecan.request.text
return MyResource(id='1', name=text).to_dict()
It worked just in case if request and response have the same content-type.
(application/json<->application/json, text/plain<->text/plain)
I also tried a lot of combination of parameters but it is still not worked.
Does anyone know what the problem is?
How it can be done using WSME and/or Pecan?
Sorry if I misunderstand something.
--
Best Regards,
Nikolay
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141125/67b2dcbf/attachment.html>
More information about the OpenStack-dev
mailing list