Comments (5)
Could you give me more info about the use-case? What is the case when a GraphQL endpoint returns HTML?
from graphiql.
Ah, right, sorry. I'm specifically thinking for development. Seems also possible that proxy/network (think Cloudflare) errors might cause an occasional non-JSON response.
At the very least, some indication that it tried to run the query and something failed might be nice.
from graphiql.
I guess GraphiQL could print somewhere (in footer bar) the status of the last call to the fetcher. If fetcher returns a failure (or the result is not a json) we could print an error message somewhere
from graphiql.
I have a use-case for this but perhaps it is too specific to express-graphql and graphiql. Consider you've got a server that requires a login before getting to the Graphiql UI. To accomplish this you've got an array of middleware passed to a custom express route. Your auth middleware comes first and performs an auth session check. Graphql-express is the second middleware in the array. Let's assume for these purposes that this is because you only want Graphiql to be available to staff or a developer group. If the currently logged in user has a session timeout occur while they are using Graphiql then chances are you're either going to return a login form (html) or something like a 403 Forbidden / Access Denied. Currently if you return html then Graphiql actually chokes on parsing, but if instead you return a 403 then it does nothing and errors to the console.
In my case I'd ideally like to be able able to define a mapping of http codes to redirects or at least define a set of errors to display to the user in certain scenarios.
// Ensure authed is just a middleware that redirects you to a login page if you don't have access to the editor
// Grahql is just express-graphql
app.use('/editor', [ensureAuthed, graphqlHTTP((req, res) => ({
schema: schema,
rootValue: {
session: req.session,
myapi: axios.create({
baseURL: 'https://myapi.net/api/',
timeout: 1000,
headers: { 'Authorization': req.session.access_token }
})
},
graphiql: true
}))]);
from graphiql.
Looks like returning a string or json will work for my case, I'll just instruct users to log back in. Would be great to be able to provide a link, but alas, security. :)
from graphiql.
Related Issues (20)
- [graphiql] without the new content type value in introspection headers, introspection can fail with more strictly spec compliant frameworks HOT 2
- [lsp-server] 🐞 Fragment names are cached and not updated HOT 3
- [graphiql] Support the proposed "incremental: ..." response format HOT 1
- [graphiql] graphql.json textmate grammar references undefined rule `#literal-quasi-embedded`
- [graphiql] Unable to input date type HOT 1
- feat: add support for graphql in Dart. HOT 1
- [graphiql] Shopify GraphiQL App: Lost all my tabs with the queries HOT 12
- [graphiql] defaultQuery with empty string does not result in empty default query
- [vscode-graphql] 🐞 Language Server crashes when presented with Svelte files containing any JS/TS code HOT 1
- [lsp-server] 🐞 Cannot find module 'typescript' since v3.3.29 HOT 5
- Is `@graphiql/toolkit` ESM or not?
- [graphiql] - Upgrading to 3.1.0 causes runtime error HOT 1
- [graphiql] file upload support HOT 2
- Multiple references to missing PATENTS file
- [vscode-graphql-syntax] (v1.2.3) triple double-quote comment syntax broken for TypeScript HOT 4
- [lsp-server] 🐞 Error: Cannot find module 'astrojs-compiler-sync' HOT 28
- [vscode-graphql-syntax] Ruby `GRAPHQL` heredoc breaks syntax higlighting in the file HOT 1
- [graphiql] `codemirror-graphql` depends on `@types/codemirror@^0.0.90` but uses `codemirror@^5.65.3` HOT 1
- [vscode-graphql-syntax] Syntax Highlight breaks if you add a comment/description to a type HOT 1
- [graphiql] Add an option to add new tab with query
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 graphiql.