Как сопоставить свойство запроса graphQL с другим свойством ответа?

У меня есть graphQL type определено в .graphqlфайл для первого приложения схемы nestjs. Тип такой:

type address {
  id: String
  Title: String
  Url: String
}

Теперь, используя nestjs, у меня есть функция распознавателя как

@Query('address')
async getAll(): Promise<any> {
  return await this.addressService.getAll();
}

Результат от await this.addressService.getAll() представляет собой массив объектов со свойствами, имеющими _ в них нравится:

[
  {
    id: 1,
    address_title: 'title',
    address_url: 'url'

  }
]

Я также использую @nestjs/graphql библиотека для @Query, @ResolveFieldи тому подобное. Моя проблема в том, как я могу сопоставить свойства ответа со свойствами graphql, которые я написал как SDL в.graphqlфайл в рамках nestjs? Есть ли способ сопоставить свойства запроса graphql со свойствами результата с помощью nestjs?

Я посмотрел на псевдоним graphql, также упомянутый здесь, но для меня это бесполезно. Любая помощь по этому поводу приветствуется.

1 ответ

Вы можете использовать прямой подход:

@Query('address')
getAll(): Promise<any> {
  return this.addressService.getAll().map(this.addressMapper);
}

private addressMapper(address: any): address {
  return {id: address.id, Title: address.address_title, Url: address_url};
}

Или использовать NestJS трубы.

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