<div dir="ltr">Ok, let's do this for 4.2</div><br><div class="gmail_quote"><div dir="ltr">po 24. 10. 2016 v 1:21 odesílatel Tom Kralidis <<a href="mailto:tomkralidis@gmail.com">tomkralidis@gmail.com</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Another option is to extend PyWPS to support an 'outputformat'<br class="gmail_msg">
parameter like 'application/json' which would simply transform the XML<br class="gmail_msg">
response into JSON.  Or to be closer to the WPS spec allow one to<br class="gmail_msg">
define/send process input which allows takes over the entire response<br class="gmail_msg">
into JSON.<br class="gmail_msg">
<br class="gmail_msg">
Having said this, we do this for pycsw as very simple step just before<br class="gmail_msg">
the response is sent.  Examples:<br class="gmail_msg">
<br class="gmail_msg">
Example response:<br class="gmail_msg">
<a href="https://github.com/geopython/pycsw/blob/master/tests/expected/suites_default_post_GetRecordById-json.xml" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/geopython/pycsw/blob/master/tests/expected/suites_default_post_GetRecordById-json.xml</a><br class="gmail_msg">
Code: <a href="https://github.com/geopython/pycsw/blob/master/pycsw/core/formats/fmt_json.py#L35" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/geopython/pycsw/blob/master/pycsw/core/formats/fmt_json.py#L35</a><br class="gmail_msg">
<br class="gmail_msg">
Thoughts? Feel free to open a ticket if something like this would be useful.<br class="gmail_msg">
<br class="gmail_msg">
..Tom<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
<br class="gmail_msg">
On Sun, Oct 23, 2016 at 6:14 PM, Sylvain Beorchia<br class="gmail_msg">
<<a href="mailto:sylvain.beorchia@gmail.com" class="gmail_msg" target="_blank">sylvain.beorchia@gmail.com</a>> wrote:<br class="gmail_msg">
> Thank you for your answers.<br class="gmail_msg">
><br class="gmail_msg">
> Jachym, i knew that WPS is XML a  based communication protocol, but i was<br class="gmail_msg">
> hoping for a full  JSON output.<br class="gmail_msg">
> I'm going to have a look at the rawdataoutput Jonas suggered.<br class="gmail_msg">
><br class="gmail_msg">
> Thank you.<br class="gmail_msg">
><br class="gmail_msg">
> Sylvain.<br class="gmail_msg">
><br class="gmail_msg">
> 2016-10-23 22:26 GMT+02:00 Jachym Cepicky <<a href="mailto:jachym.cepicky@gmail.com" class="gmail_msg" target="_blank">jachym.cepicky@gmail.com</a>>:<br class="gmail_msg">
>><br class="gmail_msg">
>> Ah, yes, I almost forget about it<br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>><br class="gmail_msg">
>> ne 23. 10. 2016 v 22:10 odesílatel Jonas Eberle <<a href="mailto:jonas.eberle@gmx.de" class="gmail_msg" target="_blank">jonas.eberle@gmx.de</a>><br class="gmail_msg">
>> napsal:<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Hi Sylvain,<br class="gmail_msg">
>>><br class="gmail_msg">
>>> if you have only one output, you can use the rawdataoutput paramater,<br class="gmail_msg">
>>> just like this WPS request:<br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> <a href="http://artemis.geogr.uni-jena.de/cgi-bin/testbox.cgi?service=WPS&version=1.0.0&request=Execute&identifier=fossgis_wps_proj&datainputs=[epsg_target=2927;epsg_source=4326;wkt=POINT(11%2051)]&rawdataoutput=output" rel="noreferrer" class="gmail_msg" target="_blank">http://artemis.geogr.uni-jena.de/cgi-bin/testbox.cgi?service=WPS&version=1.0.0&request=Execute&identifier=fossgis_wps_proj&datainputs=[epsg_target=2927;epsg_source=4326;wkt=POINT(11%2051)]&rawdataoutput=output</a><br class="gmail_msg">
>>><br class="gmail_msg">
>>> In your case it should be &rawdataoutput=out. Then you will get directly<br class="gmail_msg">
>>> the data from this output.<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Cheers,<br class="gmail_msg">
>>> Jonas<br class="gmail_msg">
>>><br class="gmail_msg">
>>> ----- Am 23. Okt 2016 um 19:17 schrieb Sylvain Beorchia<br class="gmail_msg">
>>> <<a href="mailto:sylvain.beorchia@gmail.com" class="gmail_msg" target="_blank">sylvain.beorchia@gmail.com</a>>:<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Thank you for the fix Jachym.<br class="gmail_msg">
>>> But apparently it just changes the output, from :<br class="gmail_msg">
>>><br class="gmail_msg">
>>> ...<br class="gmail_msg">
>>> <wps:ComplexData mimeType="application/geojson"><br class="gmail_msg">
>>> <![CDATA[<br class="gmail_msg">
>>><br class="gmail_msg">
>>> WwogICJmb28iLCAKICB7CiAgICAiYmFyIjogWwogICAgICAiYmF6IiwgCiAgICAgIG51bGwsIAogICAgICAxLjAsIAogICAgICAyCiAgICBdCiAgfQpd<br class="gmail_msg">
>>> ]]><br class="gmail_msg">
>>> </wps:ComplexData><br class="gmail_msg">
>>><br class="gmail_msg">
>>> to:<br class="gmail_msg">
>>><br class="gmail_msg">
>>> <wps:ComplexData mimeType="application/geojson"><br class="gmail_msg">
>>> [ "foo", { "bar": [ "baz", null, 1.0, 2 ] } ]<br class="gmail_msg">
>>> </wps:ComplexData><br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> JSON, but still in XML result.<br class="gmail_msg">
>>> Am i doing something wrong in my code ?<br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> Thanks .<br class="gmail_msg">
>>><br class="gmail_msg">
>>> Sylvain.<br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> 2016-10-23 8:01 GMT+02:00 Jachym Cepicky <<a href="mailto:jachym.cepicky@gmail.com" class="gmail_msg" target="_blank">jachym.cepicky@gmail.com</a>>:<br class="gmail_msg">
>>>><br class="gmail_msg">
>>>> Hi Sylvain,<br class="gmail_msg">
>>>> fixed in master <a href="https://github.com/geopython/pywps/pull/201" rel="noreferrer" class="gmail_msg" target="_blank">https://github.com/geopython/pywps/pull/201</a><br class="gmail_msg">
>>>><br class="gmail_msg">
>>>> Hope, it works<br class="gmail_msg">
>>>><br class="gmail_msg">
>>>> J<br class="gmail_msg">
>>>><br class="gmail_msg">
>>>><br class="gmail_msg">
>>>><br class="gmail_msg">
>>>> so 22. 10. 2016 v 23:42 odesílatel Sylvain Beorchia<br class="gmail_msg">
>>>> <<a href="mailto:sylvain.beorchia@gmail.com" class="gmail_msg" target="_blank">sylvain.beorchia@gmail.com</a>> napsal:<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> Hi all,<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> Trying to build my first WPS, i want to return JSON outputs. After many<br class="gmail_msg">
>>>>> tests, i always got some JSON encoded chars embeded in XML, or clear JSON<br class="gmail_msg">
>>>>> embeded in XML...always XML.<br class="gmail_msg">
>>>>> Here is the simple code i've tried :<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> import json<br class="gmail_msg">
>>>>> from pywps import Process, LiteralInput, LiteralOutput, OGCUNIT, UOM,<br class="gmail_msg">
>>>>> ComplexInput, ComplexOutput, Format, FORMATS<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> class Test(Process):<br class="gmail_msg">
>>>>>     def __init__(self):<br class="gmail_msg">
>>>>>         inputs = [LiteralInput('name', 'Input name',<br class="gmail_msg">
>>>>> data_type='string')]<br class="gmail_msg">
>>>>>         outputs = [ComplexOutput('out', 'Referenced Output',<br class="gmail_msg">
>>>>> supported_formats=[Format('application/geojson')])]<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>>         super(Test, self).__init__(<br class="gmail_msg">
>>>>>             self._handler,<br class="gmail_msg">
>>>>>             identifier='cartogsm',<br class="gmail_msg">
>>>>>             title='Process Test',<br class="gmail_msg">
>>>>>             version='1.0.0.0',<br class="gmail_msg">
>>>>>             inputs=inputs,<br class="gmail_msg">
>>>>>             outputs=outputs,<br class="gmail_msg">
>>>>>             store_supported=True,<br class="gmail_msg">
>>>>>             status_supported=True<br class="gmail_msg">
>>>>>         )<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>>     def _handler(self, request, response):<br class="gmail_msg">
>>>>>         data = json.loads('["foo", {"bar":["baz", null, 1.0, 2]}]')<br class="gmail_msg">
>>>>>         out_bytes = json.dumps(data, indent=2)<br class="gmail_msg">
>>>>>         response.outputs['out'].output_format = 'application/json'<br class="gmail_msg">
>>>>>         response.outputs['out'].data = out_bytes<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>>         return response<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> Ouput :<br class="gmail_msg">
>>>>> ...<br class="gmail_msg">
>>>>> <wps:ProcessOutputs><br class="gmail_msg">
>>>>> <wps:Output><br class="gmail_msg">
>>>>> <ows:Identifier>out</ows:Identifier><br class="gmail_msg">
>>>>> <ows:Title>Referenced Output</ows:Title><br class="gmail_msg">
>>>>> <wps:Data><br class="gmail_msg">
>>>>> <wps:ComplexData mimeType="application/geojson"><br class="gmail_msg">
>>>>> <![CDATA[<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> WwogICJmb28iLCAKICB7CiAgICAiYmFyIjogWwogICAgICAiYmF6IiwgCiAgICAgIG51bGwsIAogICAgICAxLjAsIAogICAgICAyCiAgICBdCiAgfQpd<br class="gmail_msg">
>>>>> ]]><br class="gmail_msg">
>>>>> </wps:ComplexData><br class="gmail_msg">
>>>>> </wps:Data><br class="gmail_msg">
>>>>> </wps:Output><br class="gmail_msg">
>>>>> </wps:ProcessOutputs><br class="gmail_msg">
>>>>> </wps:ExecuteResponse><br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> How can i return only JSON, with no XML at all ?<br class="gmail_msg">
>>>>><br class="gmail_msg">
>>>>> Thank you.<br class="gmail_msg">
>>>>> _______________________________________________<br class="gmail_msg">
>>>>> pywps-dev mailing list<br class="gmail_msg">
>>>>> <a href="mailto:pywps-dev@lists.osgeo.org" class="gmail_msg" target="_blank">pywps-dev@lists.osgeo.org</a><br class="gmail_msg">
>>>>> <a href="http://lists.osgeo.org/mailman/listinfo/pywps-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.osgeo.org/mailman/listinfo/pywps-dev</a><br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
>>> _______________________________________________<br class="gmail_msg">
>>> pywps-dev mailing list<br class="gmail_msg">
>>> <a href="mailto:pywps-dev@lists.osgeo.org" class="gmail_msg" target="_blank">pywps-dev@lists.osgeo.org</a><br class="gmail_msg">
>>> <a href="http://lists.osgeo.org/mailman/listinfo/pywps-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.osgeo.org/mailman/listinfo/pywps-dev</a><br class="gmail_msg">
>>><br class="gmail_msg">
>>><br class="gmail_msg">
><br class="gmail_msg">
><br class="gmail_msg">
> _______________________________________________<br class="gmail_msg">
> pywps-dev mailing list<br class="gmail_msg">
> <a href="mailto:pywps-dev@lists.osgeo.org" class="gmail_msg" target="_blank">pywps-dev@lists.osgeo.org</a><br class="gmail_msg">
> <a href="http://lists.osgeo.org/mailman/listinfo/pywps-dev" rel="noreferrer" class="gmail_msg" target="_blank">http://lists.osgeo.org/mailman/listinfo/pywps-dev</a><br class="gmail_msg">
</blockquote></div>