如何将 graphQL 查询属性映射到不同的响应属性?
Posted
技术标签:
【中文标题】如何将 graphQL 查询属性映射到不同的响应属性?【英文标题】:How to map graphQL query property to different response property? 【发布时间】:2020-09-22 01:01:22 【问题描述】:我在 .graphql
文件中定义了一个 graphQL type
,用于 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'
]
我还在为@Query
、@ResolveField
等使用@nestjs/graphql
库。我的问题是,如何将响应属性映射到我在nestjs 框架的.graphql
文件中作为SDL 编写的graphql 属性?有什么方法可以使用nestjs将graphql查询属性映射到结果属性?
我查看了 graphql 别名,也提到了here,但这对我没有用。对此的任何帮助都非常感谢。
【问题讨论】:
【参考方案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 pipes。
【讨论】:
以上是关于如何将 graphQL 查询属性映射到不同的响应属性?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用带有 Typescript 的泛型将中继(graphql)连接映射到边缘节点
如何根据 GraphQL (NestJS) 中的条件发送不同的订阅响应?