ZOO Services are quiet easy to create once you have install ZOO Kernel and that you have chosen a code to turn into a ZOO service. Here are some HelloWorlds in Python, PHP, Java and JavaScript with link to the correpondant .zcfg files.
You'll find here informations needed to deploy your own Python Services Provider.
For each Services providen by your ZOO Python Services Provider, the ZCFG File have to be named as the Python module function name.
The ZCFG file should contain the following :
The Python module's function to be used as a service have to :
In the following you 'll find a sample argument passed to the Python module's function for the two first main configuration file' sections.
main={ "main": {"encoding": "utf-8", "version": "1.0.0", "serverAddress": "http://www.zoo-project.org/zoo/", "lang": "fr-FR,en-CA"}, "identification": {"title": "The Zoo WPS Development Server", "abstract": "Development version of ZooWPS.", "fees": "None", "accessConstraints": "none", "keywords": "WPS,GIS,buffer"} }
The following code represent a simple ZOO Python Services Provider which provides only one Service, the HelloPy one.
import sys def HelloPy(conf,inputs,outputs): outputs["Result"]["value"]="Hello "+inputs["a"]["value"]+" from Python World !" return 3
| The ZCFG File | DescribeProcess | RawDataOutput |
<? function HelloPHP(&$main_conf,&$inputs,&$outputs){ $outputs["Result"]["value"]="Hello ".$inputs[S][value]." from PHP world !"; return 3; } ?>
import java.util.*; public class HelloJava { public static int HelloWorldJava(HashMap conf,HashMap inputs, HashMap outputs) { HashMap hm1 = new HashMap(); hm1.put("dataType","string"); HashMap tmp=(HashMap)(inputs.get("S")); java.lang.String v=tmp.get("value").toString(); hm1.put("value","Hello "+v+" from JAVA WOrld !"); outputs.put("Result",hm1); System.err.println("Hello from JAVA WOrld !"); return 3; } }
function hellojs(conf,inputs,outputs){
outputs=new Array();
outputs[0]={};
outputs[0]["result"]["value"]="Hello "+inputs[0]["S"]["value"]+" from JS World !";
return Array(3,outputs);
}