[659] | 1 | .. _client-what: |
---|
| 2 | |
---|
| 3 | What is ZOO-Client ? |
---|
| 4 | ========================= |
---|
| 5 | |
---|
| 6 | ZOO-Client is a client-side JavaScript API which provides simple methods |
---|
| 7 | for interacting with `WPS <http://www.opengeospatial.org/standards/wps/>`__ server from web |
---|
| 8 | applications. It is helpful for sending requests to any WPS compliant |
---|
| 9 | server (such as :ref:`kernel_index`) and to parse the output responses |
---|
| 10 | using simple JavaScript. |
---|
| 11 | |
---|
| 12 | |
---|
| 13 | JavaScript |
---|
| 14 | ------------------------------- |
---|
| 15 | |
---|
| 16 | ZOO-Client relies on modern JavaScript libraries and can be seamlessly |
---|
| 17 | integrated in new or existing web platforms or applications. ZOO-Client works by expanding the tags available in WPS specific |
---|
| 18 | templates using values provided by a JavaScript hash or object. It |
---|
| 19 | allows to build valid WPS requests and to send them to a WPS server. It |
---|
| 20 | also provides functions to easily parse and reuse the output XML |
---|
| 21 | responses. Read the :ref:`next section <client-howto>` to get started. |
---|
| 22 | |
---|
| 23 | |
---|
| 24 | Templates |
---|
| 25 | ------------------------------- |
---|
| 26 | |
---|
| 27 | ZOO-Client uses logic-less `Mustache <http://mustache.github.io/>`__ |
---|
| 28 | templates for creating well-formed WPS requests. Templates are called |
---|
| 29 | *logic-less* because they do not contain any *if* statements, *else* |
---|
| 30 | clauses, or *for* loops, but only **tags**. Some tags are dynamically replaced by a |
---|
| 31 | value or a series of values. |
---|
| 32 | |
---|
| 33 | |
---|
| 34 | GetCapabilities |
---|
| 35 | .......................................................... |
---|
| 36 | |
---|
| 37 | *GetCapabilities* requests are created using the following template: |
---|
| 38 | |
---|
| 39 | :: |
---|
| 40 | |
---|
| 41 | <wps:GetCapabilities xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 ../wpsGetCapabilities_request.xsd" language="{{language}}" service="WPS"> |
---|
| 42 | <wps:AcceptVersions> |
---|
| 43 | <ows:Version>1.0.0</ows:Version> |
---|
| 44 | </wps:AcceptVersions> |
---|
| 45 | </wps:GetCapabilities> |
---|
| 46 | |
---|
| 47 | |
---|
| 48 | DescribeProcess |
---|
| 49 | .......................................................... |
---|
| 50 | |
---|
| 51 | *DescribeProcess* requests are created using the following template: |
---|
| 52 | |
---|
| 53 | :: |
---|
| 54 | |
---|
| 55 | <DescribeProcess xmlns="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0 ../wpsDescribeProcess_request.xsd" service="WPS" version="1.0.0" language="{{language}}"> |
---|
| 56 | {{#identifiers}} |
---|
| 57 | <ows:Identifier>{{.}}</ows:Identifier> |
---|
| 58 | {{/identifiers}} |
---|
| 59 | </DescribeProcess> |
---|
| 60 | |
---|
| 61 | |
---|
| 62 | Execute |
---|
| 63 | .......................................................... |
---|
| 64 | |
---|
| 65 | *Execute* requests are created using a more complex template, as shown bellow: |
---|
| 66 | |
---|
| 67 | :: |
---|
| 68 | |
---|
| 69 | <wps:Execute service="WPS" version="1.0.0" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wps/1.0.0../wpsExecute_request.xsd" language="{{language}}"> |
---|
| 70 | <!-- template-version: 0.21 --> |
---|
| 71 | <ows:Identifier>{{Identifier}}</ows:Identifier> |
---|
| 72 | <wps:DataInputs> |
---|
| 73 | {{#DataInputs}} |
---|
| 74 | {{#is_literal}} |
---|
| 75 | <wps:Input> |
---|
| 76 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 77 | <wps:Data> |
---|
| 78 | <wps:LiteralData{{#dataType}} dataType="{{dataType}}"{{/dataType}}>{{value}}</wps:LiteralData> |
---|
| 79 | </wps:Data> |
---|
| 80 | </wps:Input> |
---|
| 81 | {{/is_literal}} |
---|
| 82 | {{#is_bbox}} |
---|
| 83 | <wps:Input> |
---|
| 84 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 85 | <wps:Data> |
---|
| 86 | <wps:BoundingBoxData ows:crs="{{crs}}" ows:dimensions="{{dimension}}"> |
---|
| 87 | <ows:LowerCorner>{{lowerCorner}}</ows:LowerCorner> |
---|
| 88 | <ows:UpperCorner>{{upperCorner}}</ows:UpperCorner> |
---|
| 89 | </wps:BoundingBoxData> |
---|
| 90 | </wps:Data> |
---|
| 91 | </wps:Input> |
---|
| 92 | {{/is_bbox}} |
---|
| 93 | {{#is_complex}} |
---|
| 94 | {{#is_reference}} |
---|
| 95 | {{#is_get}} |
---|
| 96 | <wps:Input> |
---|
| 97 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 98 | <wps:Reference xlink:href="{{href}}"{{#schema}} schema="{{shema}}"{{/schema}}{{#mimeType}} mimeType="{{mimeType}}"{{/mimeType}}{{#encoding}} encoding="{{encoding}}"{{/encoding}}/> |
---|
| 99 | </wps:Input> |
---|
| 100 | {{/is_get}} |
---|
| 101 | {{#is_post}} |
---|
| 102 | <wps:Input> |
---|
| 103 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 104 | <wps:Reference xlink:href="{{href}}" method="{{method}}"> |
---|
| 105 | {{#headers}} |
---|
| 106 | <wps:Header key="{{key}}" value="{{value}}" /> |
---|
| 107 | {{/headers}} |
---|
| 108 | <wps:Body>{{{value}}}</wps:Body> |
---|
| 109 | </wps:Reference> |
---|
| 110 | </wps:Input> |
---|
| 111 | {{/is_post}} |
---|
| 112 | {{/is_reference}} |
---|
| 113 | {{^is_reference}} |
---|
| 114 | <wps:Input> |
---|
| 115 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 116 | <wps:Data> |
---|
| 117 | <wps:ComplexData{{#schema}} schema="{{shema}}"{{/schema}}{{#mimeType}} mimeType="{{mimeType}}"{{/mimeType}}{{#encoding}} encoding="{{encoding}}"{{/encoding}}>{{#is_XML}} |
---|
| 118 | {{{value}}}{{/is_XML}}{{^is_XML}}<![CDATA[{{{value}}}]]>{{/is_XML}} |
---|
| 119 | </wps:ComplexData> |
---|
| 120 | </wps:Data> |
---|
| 121 | </wps:Input> |
---|
| 122 | {{/is_reference}} |
---|
| 123 | {{/is_complex}} |
---|
| 124 | {{/DataInputs}} |
---|
| 125 | </wps:DataInputs> |
---|
| 126 | <wps:ResponseForm> |
---|
| 127 | {{#RawDataOutput}} |
---|
| 128 | {{#DataOutputs}} |
---|
| 129 | <wps:RawDataOutput mimeType="{{mimeType}}"> |
---|
| 130 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 131 | </wps:RawDataOutput> |
---|
| 132 | {{/DataOutputs}} |
---|
| 133 | {{/RawDataOutput}} |
---|
| 134 | {{^RawDataOutput}} |
---|
| 135 | <wps:ResponseDocument{{#storeExecuteResponse}} storeExecuteResponse="{{storeExecuteResponse}}"{{/storeExecuteResponse}}{{#lineage}} lineage="{{lineage}}"{{/lineage}}{{#status}} status="{{status}}"{{/status}}> |
---|
| 136 | {{#DataOutputs}} |
---|
| 137 | {{#is_literal}} |
---|
| 138 | <wps:Output{{#dataType}} dataType="{{dataType}}"{{/dataType}}{{#uom}} uom="{{uom}}"{{/uom}}> |
---|
| 139 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 140 | </wps:Output> |
---|
| 141 | {{/is_literal}} |
---|
| 142 | {{^is_literal}} |
---|
| 143 | <wps:Output{{#asReference}} asReference="{{asReference}}"{{/asReference}}{{#schema}} schema="{{schema}}"{{/schema}}{{#mimeType}} mimeType="{{mimeType}}"{{/mimeType}}{{#encoding}} encoding="{{encoding}}"{{/encoding}}> |
---|
| 144 | <ows:Identifier>{{identifier}}</ows:Identifier> |
---|
| 145 | </wps:Output> |
---|
| 146 | {{/is_literal}} |
---|
| 147 | {{/DataOutputs}} |
---|
| 148 | </wps:ResponseDocument> |
---|
| 149 | {{/RawDataOutput}} |
---|
| 150 | </wps:ResponseForm> |
---|
| 151 | </wps:Execute> |
---|