使用Axios将对象传递给graphql查询

kadbb459  于 2022-11-05  发布在  iOS
关注(0)|答案(1)|浏览(273)

所以我想使用axios将一个对象作为参数传递给graphql服务器,下面是我的查询

const query = `
  query SalesPropertySearch($source: Source!, $searchParameter: SearchParameter!) {
    salesPropertySearch(
          source: $source,
          searchParameter: $searchParameter
      ) {
          edges {
              id
              score
              projectName
          }
      }
  }`

然后我会提出这样的请求:

const data = await lastValueFrom(
        this.httpService
            .post<GQLResponse<SalesPropertyApiResult>>('graphql', { query, variables: dto })
            .pipe(map(res => res.data.data.salesPropertySearch))
    )

dto对象类似于:

{
  source: 'CONDOMINIUM',
  searchParameter:{
    buildingNumber: '10',
    page: 1,
    perPageSize: 10
  }
}

所以它是有效的,但是我仍然得到一个坏的请求错误,看起来axios在searchParameter中传递对象的方式是错误的,有什么方法可以修复这个问题吗?
如果我只传递这样的查询,也会发生同样的情况:

query { rentalPropertySearch(source:${dto.source}, searchParameter:${JSON.stringify(dto.searchParameter)}){
          edges {
              id
              score
          }
      }
  }

`
在这种情况下,axios添加\字符,
请建议如何修复此问题或如何正确传递对象

h43kikqp

h43kikqp1#

在此发布更新:问题在于错误的查询参数(区分大小写的值),没有实际的axios问题

相关问题