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)
- [lsp-server] 🐞 Pending response rejected since connection got disposed HOT 4
- [lsp-server] 🐞 Adding whitespaces\newlines causes autocompletion to move up a level HOT 5
- Don't export react with cdn bundle
- [graphiql] <title>MDUxRUVCM0Y3QjQwNzgwMDZDNjczQTMxMEIyRkZEMEIwMDI4MjhGMUQ0NkI4RjI5RTREMjE4QzhBM0FDNDdBOA==
- [lsp-server] Support go to definition for implementation first graphql setups HOT 1
- vscode-graphql-syntax javascript - line between graphql( and ` character breaks syntax highlighting HOT 2
- [graphiql] Grafana Embedded GraphiQL Editor CodeMirror info tooltips links navigate away from page HOT 4
- [graphiql] Fragment variables not supported HOT 4
- [graphiql] Default Value not accepted in Variable
- [graphiql] bump markdown-it for SNYK-JS-MARKDOWNIT-6483324 HOT 1
- [graphiql] cm6-graphql | Cannot use import statement outside a module | import { getTokenAtPosition, getTypeInfo, getAutocompleteSuggestions, getDiagnostics } from 'graphql-language-service';
- [graphiql] Upgrade to @graphiql/react breaks unit tests
- [graphiql] Cannot edit query name from explorer plugin
- [lsp-server] <title> Sending request for data to server
- [graphiql] <title>pluginapi
- [lsp-server] 🐞 Constant syntax errors if a file is named `exports.graphqls` HOT 1
- [lsp-server] Support JS/TS files as schema files HOT 4
- [lsp-server] 🐞 JS/TS files should only be checked when included in `documents` config glob HOT 2
- [graphiql] Graphiql editor information is scoped to the origin
- [lsp-server] Add configuration to disable/enable for certain files. HOT 1
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.