Преобразование структуры ответа apollo-datasource-rest для адаптации к уже определенной удаленной схеме

У нас уже есть удаленная схема. Мы получаем ответ источника данных Apollo, нажимая REST API с помощью apollo-datasource-rest. Формат ответа json не соответствует схеме. Задача состоит в том, чтобы преобразовать ответ json в соответствие со схемой и вернуть результат по запросу пользователя. Как этого добиться?

Например, ответ REST API:

{
    "members": {
        "name": "john",
        "street_address": "10 Barley St."
    }
}

Наша удаленная схема graphql:

type Users {
    username: String!
    street: String!
}

Мы высоко ценим любые идеи, помощь или исходный код. Спасибо еще раз.


person PainPoints    schedule 06.11.2019    source источник
comment
Я использую node js, поэтому следует ли мне использовать node-json-transform? или есть ли для этого какие-либо инструменты graphql?   -  person PainPoints    schedule 06.11.2019


Ответы (1)


Вы можете преобразовать поля ответа REST API в схему GraphQL в GraphQL resolver. Или делегируйте эти операции преобразования на уровень модели. Это общий подход.

Если вы считаете, что преобразовывать поля в резолверах или на уровне модели вручную слишком многословно.

Для этого вы можете использовать некоторую библиотеку, например type-graphql. Он объединяет слой вашей модели и слой схемы GraphQL. Он сопоставляет поля модели с полями схемы GraphQL.

person slideshowp2    schedule 10.01.2020