mirumee / mirumee/saleor-app-framework-python

Error handing in the framework

Open
#14 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
61
Forks
24
PR merge metrics
No merged PRs in 30d

Description

Think what we want to do with Exceptions, I'm on the fence but probably we should not enforce anything to the user's HTTP layer.

To quote myself:

I would not want to enforce a global error handler in the framework in case someone would want to deal with other GraphQL services in the app, but this brings an important topic, should those errors be HTTPErrors or should those be "framework" errors? What I'm getting at is that the framework should not enforce the error schema of an app but rather expose the ability to handle (documented) errors in the way a user of the framework wants, i.e. on SaleorAuthenticationError one would like to respond with a 403:

{
    "error": "Authentication with Saleor bad"
}

while another may want to do something like application/problem+json https://datatracker.ietf.org/doc/html/rfc7807

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The issue names no files, tests, or entry points. Start by reviewing the proposed handling of Exceptions, SaleorAuthenticationError, and the linked RFC 7807, then determine whether the framework should expose documented errors without enforcing an HTTP schema. Done means the error-handling contract and supported response customization are decided and documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
api, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.