-
Star
(200)
You must be signed in to star a gist -
Fork
(47)
You must be signed in to fork a gist
-
-
Save craigbeck/b90915d49fda19d5b2b17ead14dcd6da to your computer and use it in GitHub Desktop.
| query IntrospectionQuery { | |
| __schema { | |
| queryType { name } | |
| mutationType { name } | |
| subscriptionType { name } | |
| types { | |
| ...FullType | |
| } | |
| directives { | |
| name | |
| description | |
| args { | |
| ...InputValue | |
| } | |
| onOperation | |
| onFragment | |
| onField | |
| } | |
| } | |
| } | |
| fragment FullType on __Type { | |
| kind | |
| name | |
| description | |
| fields(includeDeprecated: true) { | |
| name | |
| description | |
| args { | |
| ...InputValue | |
| } | |
| type { | |
| ...TypeRef | |
| } | |
| isDeprecated | |
| deprecationReason | |
| } | |
| inputFields { | |
| ...InputValue | |
| } | |
| interfaces { | |
| ...TypeRef | |
| } | |
| enumValues(includeDeprecated: true) { | |
| name | |
| description | |
| isDeprecated | |
| deprecationReason | |
| } | |
| possibleTypes { | |
| ...TypeRef | |
| } | |
| } | |
| fragment InputValue on __InputValue { | |
| name | |
| description | |
| type { ...TypeRef } | |
| defaultValue | |
| } | |
| fragment TypeRef on __Type { | |
| kind | |
| name | |
| ofType { | |
| kind | |
| name | |
| ofType { | |
| kind | |
| name | |
| ofType { | |
| kind | |
| name | |
| } | |
| } | |
| } | |
| } |
const path = require("path");
const fs = require("fs");
const fetch = require("node-fetch");
const {
getIntrospectionQuery,
printSchema,
buildClientSchema
} = require("graphql");
async function main() {
const introspectionQuery = getIntrospectionQuery();
const response = await fetch(
"https://<URL_HERE>/graphql",
{
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ query: introspectionQuery })
}
);
const { data } = await response.json();
const schema = buildClientSchema(data);
const outputFile = path.join(__dirname, "./result.gql");
await fs.promises.writeFile(outputFile, printSchema(schema));
}
main();@danstarns what is the query here?
@danstarns what is the query here?
introspectionQuery is an exported member of graphql, the query is that.
const { introspectionQuery } = require("graphql");
console.log(introspectionQuery);@danstarns thank you.
The graphql reference implementation on JS has changed slightly and introspectionQuery is no longer exported as above. For newer versions of graphql (after graphql/graphql-js#2718), the above will break/not work, however, this seems to work after adapting to getIntrospectionQuery:
const path = require("path");
const fs = require("fs");
const fetch = require("node-fetch");
const {
getIntrospectionQuery,
printSchema,
buildClientSchema
} = require("graphql");
async function main() {
const introspectionQuery = getIntrospectionQuery();
const response = await fetch(
"https://<URL_HERE>/graphql",
{
method: "POST",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify({ query: introspectionQuery })
}
);
const { data } = await response.json();
const schema = buildClientSchema(data);
const outputFile = path.join(__dirname, "./result.gql");
await fs.promises.writeFile(outputFile, printSchema(schema));
}
main();
The graphql reference implementation on JS has changed slightly and introspectionQuery is no longer exported as above. For newer versions of graphql (after graphql/graphql-js#2718), the above will break/not work, however, this seems to work after adapting to getIntrospectionQuery:
const path = require("path"); const fs = require("fs"); const fetch = require("node-fetch"); const { getIntrospectionQuery, printSchema, buildClientSchema } = require("graphql"); async function main() { const introspectionQuery = getIntrospectionQuery(); const response = await fetch( "https://<URL_HERE>/graphql", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ query: introspectionQuery }) } ); const { data } = await response.json(); const schema = buildClientSchema(data); const outputFile = path.join(__dirname, "./result.gql"); await fs.promises.writeFile(outputFile, printSchema(schema)); } main();
Good call updated getIntrospectionQuery 👍
npm install -g graphql-introspect graphql-introspect URL > schema.graphql