Skip to main content
= AnyWebHook

AnyWebhook (*awh*) is Python/WSGI webhook listener and handler. It simplifies
writing and acting upon incoming webhooks.

Awh splits webhook handling into _validating_ and _executing_. You must register
both validator and executor to handle webhooks. These are simple functions which
accept a request parameter containing incoming request data. Additionaly they
receive a dictionary which is filled with arbitrary data by response manipulator
(a function decorated with `@app.app` decorator). Many validators and executors
(for many different webhooks) can be registered. Any validator returning `True`
marks webhook as correct.

You can also affect application's response by registering a separate function
accepting incoming request and to-be-modified response parameter.

Simple application would look like this:

[[example-app]]
[source,python]
----
import json
import subprocess

from awh import Awh
from awh.operate import require, jsonpath

app = Awh()

@app.validator('foo')
def valid(request, data_dict):
payload = request.get_data(as_text=True)
j = json.loads(payload)

# validate incoming json somehow
require(jsonpath(j, 'password')[0].value == 'secretpass')
require(data_dict.get('foo') == 'bar')
return True


@app.executor('foo')
def execute(request, data_dict):
subprocess.call('deploy-app')


@app.app
def myapp(request, response, data_dict):
response.status_code = 404
data_dict['foo'] == 'bar'
----

For additional examples, see link:tests/apps[tests/apps].

== Deployment

In <<example-app>>, `app` is a WSGI application, which implements its interface
(i.e. a function accepting `environ` and `start_response` parameters). You
should point it to your WSGI server.

Metadata

Release files for awh 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for awh 0.2.1
File Size Uploaded
awh-0.2.1.tar.gz 12.9 kB Details

Release files / awh-0.2.1.tar.gz

Download URL awh-0.2.1.tar.gz
Size 12.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a9edfb8dc1f557f8daf5bc3084008fb66c5883ae8f1b564770b0bf2a7ba93f6a
BLAKE2b-256 checksum
How to use checksums
43e7ff97713ef8758cca0942ccb68b8966aa50d569b6e73bcd2d5e226ba43128
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.2.1 This release

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page