Comments (5)
I think it’s probably better for the library to have handled exceptions be more constrained then simply general purpose responses. That makes it easier to modify the error handling.
from starlette.
I don't mean using it for exceptions on the library level. It just convenient when you can just "raise" response from some nested coroutine or a middleware rather than passing it all the way back.
from starlette.
Sure, and we have HTTPException
for that kind of use-case. It’s just more constrained than having Response itself be an exception class.
from starlette.
Looking at the code and don't see how can I use a particular response (let's say RedirectResponse
) with HTTPException
? Let me clarity what I mean by example, with this rising feature we can write:
@app.route('/')
def homepage(request):
validate_request(request):
return JSONResponse({'hello': 'world'})
def validate(request):
raise JSONResponse({...}, status_code=400)
from starlette.
I guess you could make this work by using a mixin / custom JSONResponse class, and handling it via @app.exception_handler(RaisingJSONResponse)
, or a middleware.
from starlette.
Related Issues (20)
- I have a problem about livestreaming connection starlette.websockets.WebSocketDisconnect: 1006
- error, when open env file. contained non-ascii string HOT 1
- SystemError when using gradio==4.12.0 with starlette>=0.30.0 on Python3.8 HOT 1
- Drop `python-multipart` dependency
- Warn users if setting too large of a session object
- Typing error for app.add_exception_handler (Argument "handler" to "add_exception_handler" of "Starlette" has incompatible type) HOT 1
- TrustedHostMiddleware raises RuntimeError on sending response to websocket HOT 2
- typing map _RequestData in testclient.py might be missing type bytes HOT 2
- Enable `branch = true` for `coverage.run` HOT 4
- Fetching API docs occasionally fails at starlette framework middleware issue with streaming large responses
- links on the release-notes not found. HOT 1
- Add `Partitioned` cookie attribute HOT 2
- `RuntimeError("No response returned")` in `BaseHTTPMiddleware` HOT 11
- Incompatibility with anyio v3
- TestClient DeprecationWarning with httpx 0.27.0 HOT 5
- Bug: `_TemplateResponse` is still relying on `request` key from `context` which maybe different from `request` argument to `TemplateResponse`. HOT 4
- How to change the value of request body?
- A `RuntimeError: Stream consumed` error is raised when `request.body()` is read in the custom middleware
- CORSMiddleware always add access-control-allow-credentials regardless of Origin
- ValueError when null byte in URL HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from starlette.