Подключение к базе данных с помощью GraphQL-Java

Как связать любую базу данных с приложением GraphQL, используя реализацию GraphQL-Java? Демонстративный подход приветствуется.


person Ashwani Pratap    schedule 07.03.2017    source источник


Ответы (2)


Есть несколько возможных решений:

A) Вызовите запрос GraphQL с объектом данных:

Foo data = perhapsFromDatabase();
ExecutionResult executionResult = schemaFactory.getGraphQL().execute(query, data, variables);

Если у данных есть метод getTitle(), вы можете запросить этот атрибут непосредственно в запросе GraphQL.

Б) Используйте DataFetcher:

Пример кода из документов GraphQL:

  DataFetcher<Foo> fooDataFetcher = new DataFetcher<Foo>() {
    @Override
    public Foo get(DataFetchingEnvironment environment) {
        // environment.getSource() is the value of the surrounding
        // object. In this case described by objectType
        Foo value = perhapsFromDatabase(); // Perhaps getting from a DB or whatever 
        return value;
    }
};

GraphQLObjectType objectType = newObject()
        .name("ObjectType")
        .field(newFieldDefinition()
                .name("foo")
                .type(GraphQLString)
                .dataFetcher(fooDataFetcher))
        .build();
person Matthias M    schedule 12.03.2017

Это то, что мне больше всего понравилось в GraphQL, это концепция, как и REST. Так что это не зависит от технологии. Я создал приложение микроблогов, используя gradle, spring-jpa, spring-boot и mongo-db.

PS: я также прикрепил вызовы API postman, чтобы упростить тестирование.

person thekosmix    schedule 29.12.2017