Comments (4)
At least right now, the design of our content negotiation handling is that you register renderers for various content types.
The ones we provide OOTB are:
- application/json
- text/html
- text/plain
Services simple return a data structure and the renderer then decides how to display it.
So, rather than forcing an application/json
response, I think what is more appropriate here is to wrap the response body in <html><body>
tags. If the client asks for html, we should give them html. And if a client what json, it should ask for it or if it doesn't care, provide */*
and guess the best response.
from guillotina.
See #204
from guillotina.
Hitting the API with a browser is mainly for debugging purpose, and modern browsers will display application/json content with an appropriate interface (hightlighted and with a foldable tree).
It is what I was expecting and led me to create this issue.
Currently, using the browser debugger workaround the 'problem' (it still can display the json as such), but by wrapping the json in a <html><body>
, it would not work anymore.
So I think the most useful solution is to remove the text/html and text/plain views.
from guillotina.
@vangheem I really fail to see how wrapping json in a html body can be of any interest.
Unless this wrapping does some coloring/formatting, which the browser does well already when receiving application/json content, I strongly suggest to remove the default html view.
Meanwhile, is there any way to disable it ?
from guillotina.
Related Issues (20)
- PG Table/ Container HOT 1
- CORS Middleware for asgi
- Field related items / reusable behaviors with ARC
- Transaction improvement HOT 4
- Proposal: generate default config with cors.allow_origin = "*" HOT 5
- DBUsers Patch Group deletes group from user
- Upgrade PyJWT >= 2.0.0
- python3.9 g command fails to shutdown HOT 2
- Status codes when authorised but without permission should be 403 HOT 5
- Add regex field in guillotina schema HOT 1
- Subscriber to prevent overriding values with outdated content HOT 2
- Remove DublinCore and switch to contextbehavior
- Searching by "SearchableText" is broken HOT 7
- Pass variable arguments to SMTPMailEndpoint (smtp) HOT 1
- GET /groups/ lacks group title
- Review current conflicts resolution logic
- Websocket connection failed HOT 4
- Issuing subrequests
- Change aioredis with redis-py
- ImportError: cannot import name 'implements' from 'zope.interface'
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 guillotina.