Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kareem-emad/switch-py
Python SDK for switch service allowing you to publish messages on topics that trigger the registered subscribers at switch service
https://github.com/kareem-emad/switch-py
events pubsub sdk
Last synced: 11 days ago
JSON representation
Python SDK for switch service allowing you to publish messages on topics that trigger the registered subscribers at switch service
- Host: GitHub
- URL: https://github.com/kareem-emad/switch-py
- Owner: Kareem-Emad
- License: mit
- Created: 2020-09-25T19:05:36.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-09-26T00:11:39.000Z (over 4 years ago)
- Last Synced: 2024-12-18T16:47:14.208Z (about 1 month ago)
- Topics: events, pubsub, sdk
- Language: Python
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# swtich-py
[![PyPI version](https://badge.fury.io/py/switcher.svg)](https://badge.fury.io/py/switcher)
[![Build Status:](https://github.com/Kareem-Emad/switch-py/workflows/build/badge.svg)](https://github.com/Kareem-Emad/switch-py/actions)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)python version of switch sdk, allows to publish messages on any topic to trigger all configured
subscribers at switch service.## Setup
To install the package
```shell
pip install switcher
```## How To Use
first make sure you set up the env variable properlly for:
- `SWITCH_JWT_SECRET` the secret key used to sign tokens for switch service, should be same env as the service itself
- `SWITCH_BASE_URL` the base url of the hosted switch service
```python
from switcher import publisher
publisher.publish('hellow', 'me', {'body': {'hello': 'world'}})
```params in order:
- `topic` the topic name you wish to trigger subscribers on
- `author` your service identifier string(anything you want)
- `options` a dict containing the data you wish to include in your request:- `body` body dict of your request if it's a post/patch/.. request
- `headers` headers to be sent to the subscriber in the request headers
- `query_params` a dict containing any query params you wish to add to the subscribers' url (`{param: value}` `=>` `https://google.com?param=value`)
- `path_params` a dict containing any path variables you wish to subtitute if exits in any of the subscirbers url, example `{id: 1}` `https://googl.com/:id` will be transformed to `https://googl.com/1`
- `http_method` string representing the http method you wish to use when triggering the subscribers for this topic