[659] | 1 | .. _api-examples: |
---|
| 2 | |
---|
| 3 | Examples |
---|
| 4 | ======== |
---|
| 5 | |
---|
| 6 | This section gathers sample scripts using :ref:`ZOO-API <api-what>`, the `ZOO-Project <http://zoo-project.org>`__ server-side JavaScript API. |
---|
| 7 | |
---|
| 8 | ZOO-API contains many classes and functions. You can find the description list :ref:`here <api-classes>`. |
---|
| 9 | |
---|
| 10 | ZOO.Process example |
---|
| 11 | -------------------------- |
---|
| 12 | |
---|
| 13 | :: |
---|
| 14 | |
---|
| 15 | function SampleService(conf,inputs,outputs){ |
---|
| 16 | var myProcess = new ZOO.Process('http://localhost/cgi-bin-new1/zoo_loader_new1.cgi','Boundary'); |
---|
| 17 | var myInputs = {InputPolygon: { type: 'complex', value: '{"type":"Polygon","coordinates":[[[-106.993853,35.998758],[-107.407233,35.997524],[-107.430525,35.997726],[-107.4824,35.99878],[-108.37013,35.999472],[-109.043633,35.996652],[-109.096265,35.997817],[-109.148763,36.001751],[-109.200981,36.008442],[-109.252775,36.017871],[-109.304,36.030014],[-109.354516,36.044835],[-106.468201,35.991497],[-106.855511,35.989504],[-106.90933,35.990676],[-106.963008,35.994743],[-106.993853,35.998758]]]}', mimeType: "application/json"} }; |
---|
| 18 | var myExecuteResult=myProcess.Execute(myInputs); |
---|
| 19 | return {result: ZOO.SERVICE_SUCCEEDED, outputs: [ {name:"Result", value: myExecuteResult} ] }; |
---|
| 20 | } |
---|
| 21 | |
---|
| 22 | In this really short example you can see how to create ``ZOO.Process`` class instance and |
---|
| 23 | call the Execute method on such an instance. Then you'll just need to return a JavaScript |
---|
| 24 | object containing the attributes result and outputs, which I'm sure you already know |
---|
| 25 | what is about. The first is about the status of the process (can be ``ZOO.SERVICE_SUCEEDED``, |
---|
| 26 | ``ZOO.SERVICE_FAILED`` and so on), the last is obviously the resulting maps (take a |
---|
| 27 | look at the maps internal data structure used by ZOO Kernel in ``service.h``). |
---|
| 28 | |
---|
| 29 | ZOO.UpdateStatus example |
---|
| 30 | ----------------------- |
---|
| 31 | |
---|
| 32 | :: |
---|
| 33 | |
---|
| 34 | function SampleLongService(conf,inputs,outputs){ |
---|
| 35 | var my_i=0; |
---|
| 36 | while(my_i<100){ |
---|
| 37 | try{ |
---|
| 38 | conf["lenv"]["status"]=my_i; |
---|
| 39 | } |
---|
| 40 | catch(e){ |
---|
| 41 | } |
---|
| 42 | ZOOUpdateStatus(conf,my_i); |
---|
| 43 | SampleService(conf,inputs,outputs); |
---|
| 44 | my_i+=10; |
---|
| 45 | } |
---|
| 46 | return SampleService(conf,inputs,outputs); |
---|
| 47 | } |
---|
| 48 | |
---|
| 49 | You can see in this sample code how to use the ``ZOOUpdateStatus`` function to update the |
---|
| 50 | current status of your running process. This information will be really helpfull when the |
---|
| 51 | ZOO Kernel will run your JavaScript Service in background mode (if the user set to ``true`` |
---|
| 52 | the ``storeExecuteResponse`` parameter in his request). |
---|
| 53 | |
---|