Create this directory structure:
$ tree . . └── hello ├── hello.py └── __init__.py 0 directories, 2 files $
Write this into hello/hello.py
:
def execute(context, arg):
return "Hello, {}!".format(arg)
def main():
from servicelib.service import start_service
start_service()
Start the worker process in a terminal with servicelib-worker
:
$ env SERVICELIB_WORKER_SERVICES_DIR=$(pwd) servicelib-worker *** Starting uWSGI 2.0.18 (64bit) on [Tue Mar 10 14:53:06 2020] *** ... lots of output here ... 2020-03-10 14:53:06,646 17490 MainProcess MainThread DEBUG servicelib.inventory Registering services in module: hello.hello 2020-03-10 14:53:06,663 17490 MainProcess MainThread DEBUG servicelib.inventory Services: hello
Now you may call the service hello
from another terminal:
$ curl -v \ -H 'Content-Type: application/json' \ -d '["world"]' \ http://127.0.0.1:8000/services/hello * TCP_NODELAY set * Connected to 127.0.0.1 (127.0.0.1) port 8000 (#0) > POST /services/hello HTTP/1.1 > Content-Type: application/json > * upload completely sent off: 9 out of 9 bytes < HTTP/1.1 200 OK ... some headers here ... < * Connection #0 to host 127.0.0.1 left intact "Hello, world!" $