Изучите схему graphql с использованием файлов * .graphqls

В настоящее время я использую библиотеку com.graphql-java-kickstart и весеннюю загрузку для запуска сервера graphql. А теперь для тестирования контракта я хотел бы иметь возможность генерировать схему json, как я это делаю при выполнении запроса '/graphql/schema.json'. Но без запущенного сервера, только на основе файлов .graphqls.

Могут ли мне помочь какие-либо инструменты на основе jvm (предпочтительнее).

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
16
1

Ответы 1

Я нашел решение, используя библиотеку graphql-java. Может быть, это было бы полезно кому-нибудь, кроме меня.

    ObjectMapper mapper= new ObjectMapper()
    Collection<File> files = FileUtils.listFiles(inputDir, new String[]{"graphqls"}, true);

    SchemaParser schemaParser = new SchemaParser();
    TypeDefinitionRegistry mergedDefinitoionRegistry = new TypeDefinitionRegistry();
    files.forEach(file -> {
        TypeDefinitionRegistry typeDefinitionRegistry = schemaParser.parse(file);
        mergedDefinitoionRegistry.merge(typeDefinitionRegistry);
    });

    SchemaGenerator schemaGenerator = new SchemaGenerator();
    GraphQLSchema graphQLSchema = schemaGenerator.makeExecutableSchema(mergedDefinitoionRegistry, RuntimeWiring.MOCKED_WIRING);

    GraphQL graphQL = GraphQL.newGraphQL(graphQLSchema).build();
    ExecutionResult executionResult = graphQL.execute(IntrospectionQuery.INTROSPECTION_QUERY);

    return mapper.writeValueAsString(executionResult);

Другие вопросы по теме