<div dir="ltr">Hi, folks! <br><br>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.<div><br></div><div>I just want to receive text on server and send json-encoded string from server (request has text/plain and response - application/json) </div><div><br></div><div>I tried: <br><br>class MyResource(resource.Resource):<div>    id = wtypes.text</div><div>    name = wtypes.text</div><div><br></div><div><br></div><div>class MyResourcesController(rest.RestController):</div><div>    @wsexpose(MyResource, body=wtypes.text)</div><div>    def put(self, text):</div><div>        return MyResource(id='1', name=text)</div><div><br></div><div><br></div><div>According to WSME documentation (<a href="http://wsme.readthedocs.org/en/latest/integrate.html#module-wsmeext.pecan">http://wsme.readthedocs.org/en/latest/integrate.html#module-wsmeext.pecan</a>) signature wsexpose method as following: <br><br>  <tt class="" style="font-family:'Droid Sans Mono',monospace;font-weight:bold;color:rgb(0,0,0);line-height:19.6000003814697px">wsexpose</tt><big style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">(</big><em style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">return_type</em><span style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">, </span><em style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">*arg_types</em><span style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">, </span><em style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">**options</em><big style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px">)</big></div><div><big style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif;line-height:19.6000003814697px"><br></big></div><div><font color="#000000" face="Open Sans, sans-serif"><span style="line-height:19.6000003814697px">Ok, I just set MyResource as return_type and body to text type. But it didn't work as expected: </span><br><span style="line-height:19.6000003814697px"><a href="http://paste.openstack.org/show/138268/">http://paste.openstack.org/show/138268/</a></span></font><span style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif"> </span></div><div><font color="#000000" face="Open Sans, sans-serif"><br>I looked at pecan documentation at <a href="https://media.readthedocs.org/pdf/pecan/latest/pecan.pdf">https://media.readthedocs.org/pdf/pecan/latest/pecan.pdf</a> but I didn't find anything that can fit to my case.<br><br>Also, I tried: <br><br></font>class MyResource(resource.Resource):<div>    id = wtypes.text</div><div>    name = wtypes.text</div><div><br></div><div><br></div><div>class MyResourcesController(rest.RestController):</div><div>    @expose('json')</div><div>    @expose(content_type="text/plain")</div><div>    def put(self):</div><div>        text = pecan.request.text</div><div>        return MyResource(id='1', name=text).to_dict()</div></div><div><br></div><div>It worked just in case if request and response have the same content-type. (application/json<->application/json, text/plain<->text/plain)</div><div><br></div><div>I also tried a lot of combination of parameters but it is still not worked.</div><div><br></div><div>Does anyone know what the problem is?</div><div><span style="color:rgb(0,0,0);font-family:'Open Sans',sans-serif">How it can be done using WSME and/or Pecan?</span><br></div><div><br></div><div>Sorry if I misunderstand something.</div>-- <br><div class="gmail_signature"><div dir="ltr"><div><font>Best Regards,</font></div><div><font>Nikolay</font></div></div></div>
</div></div>