A Sentry component for API Star.
Switch branches/tags
Nothing to show
Clone or download
Pull request Compare This branch is 7 commits ahead of LeadPages:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
tests fix: annotate exception handler Apr 19, 2018
.bumpversion.cfg chore: bump version 0.3.1 → 0.3.2 Apr 19, 2018
.gitignore use builtin auth to determine current user Mar 5, 2018
LICENSE feat: upgrade for 0.4 Apr 16, 2018
Pipfile chore: pin apistar>=0.5 Apr 19, 2018
Pipfile.lock chore: pin apistar>=0.5 Apr 19, 2018
README.md fix: resolve to None if not given a dsn Apr 16, 2018
apistar_sentry.py chore: bump version 0.3.1 → 0.3.2 Apr 19, 2018
setup.cfg
setup.py feat: upgrade for 0.4 Apr 16, 2018

README.md

apistar-sentry

Sentry support for API Star.

Installation

pipenv install apistar_sentry

Usage

from apistar import App as BaseApp
from apistar_sentry import SentryComponent, SentryMixin


class App(SentryMixin, BaseApp):
    pass


COMPONENTS = [
    SentryComponent("YOUR_DSN_GOES_HERE", environment="example", version="0.1.0"),
]

ROUTES = [
    # ...
]

app = App(components=COMPONENTS, routes=ROUTES)

Tracking user information

If you have a custom user or account object that can be dependency injected, then you can define on_request and on_response hooks to enrich the Sentry object with that user's information:

class SentryHooks:
  def on_request(self, account: Account, sentry: Sentry = None) -> None:
    if sentry is not None:
      sentry.track_user(account.to_dict())

  def on_response(self, response: http.Response, sentry: Sentry = None) -> http.Response:
    if sentry is not None:
      sentry.clear_user()
    return response

  on_error = on_response

Authors

apistar_sentry was originally authored at Leadpages. Check out their careers page!

License

apistar_sentry is licensed under the MIT License. Please see LICENSE for licensing details.