# django-webhooks
[](https://travis-ci.org/cbmi/django-webhooks)
[](https://coveralls.io/r/cbmi/django-webhooks?branch=master)
## Install
```bash
# Yes.. with a two on the end
pip install django-webhooks2
```
## Setup
Add `webhooks` to `INSTALLED_APPS`:
```python
INSTALLED_APPS = (
'webhooks',
...
)
```
## Settings
- `WEBHOOK_TIMEOUT` - Seconds to wait until a request times out
- `WEBHOOK_THREADS` - Maximum number of threads to be used in a worker pool
- `WEBHOOK_USER_AGENT` - The user-agent string for POST requests. Defaults to the current site name if the Django sites apps is installed.
- `WEBHOOK_VERSION` - The webhook version. If not None, this will be added to the user-agent string, e.g. 'Webhooks/1.0'. Default is 1.0.
## Trigger Execution
1. Events are triggered using `webhooks.trigger(event, [*args, [**kwargs]])`
2. If a handler is registered for the event, the arguments are passed into the handler to generate a JSON-serializable payload.
3. All URLs registered for this event are collected and each URL receives a POST request with the JSON payload
**Notes:**
- If no URLs are registered for the event, the payload is not generated (since it would be wasted computation)
- All requests are sent in parallel using threads
- Logging is heavily use to catch any undesirable or unexpected behaviors (such as failing requests, errors or data serialization)
## Usage
```python
import webhooks
# Define and register a handler for an event
def handler():
return { ... }
webhooks.events.register('event', handler)
# Bind a URL to the event
webhooks.bind('event', 'http://example.com')
# Trigger the event. Any arguments after the event name
# will be passed into the handler to produce the data that
# will be POSTed to the bound URLs.
webhooks.trigger('event')
```
[](https://travis-ci.org/cbmi/django-webhooks)
[](https://coveralls.io/r/cbmi/django-webhooks?branch=master)
## Install
```bash
# Yes.. with a two on the end
pip install django-webhooks2
```
## Setup
Add `webhooks` to `INSTALLED_APPS`:
```python
INSTALLED_APPS = (
'webhooks',
...
)
```
## Settings
- `WEBHOOK_TIMEOUT` - Seconds to wait until a request times out
- `WEBHOOK_THREADS` - Maximum number of threads to be used in a worker pool
- `WEBHOOK_USER_AGENT` - The user-agent string for POST requests. Defaults to the current site name if the Django sites apps is installed.
- `WEBHOOK_VERSION` - The webhook version. If not None, this will be added to the user-agent string, e.g. 'Webhooks/1.0'. Default is 1.0.
## Trigger Execution
1. Events are triggered using `webhooks.trigger(event, [*args, [**kwargs]])`
2. If a handler is registered for the event, the arguments are passed into the handler to generate a JSON-serializable payload.
3. All URLs registered for this event are collected and each URL receives a POST request with the JSON payload
**Notes:**
- If no URLs are registered for the event, the payload is not generated (since it would be wasted computation)
- All requests are sent in parallel using threads
- Logging is heavily use to catch any undesirable or unexpected behaviors (such as failing requests, errors or data serialization)
## Usage
```python
import webhooks
# Define and register a handler for an event
def handler():
return { ... }
webhooks.events.register('event', handler)
# Bind a URL to the event
webhooks.bind('event', 'http://example.com')
# Trigger the event. Any arguments after the event name
# will be passed into the handler to produce the data that
# will be POSTed to the bound URLs.
webhooks.trigger('event')
```
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-webhooks2-0.1.0.tar.gz.
File metadata
- Download URL: django-webhooks2-0.1.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b10aa74740ebab7af8d20dc57757f15ce5bb9923dcc4a3696f38981371fe1dd
|
|
| MD5 |
c2e0288059137d15a03840838d3900d7
|
|
| BLAKE2b-256 |
79b7b85368ff416ad2509f38b6b5f9ecfca8b5a751bb6e4e450b679b8d77684a
|