使用 GraphQL/HotChocolate (C#) 传递、计算输入和过滤结果的最佳实践?

问题描述

我们目前正在进行一个研究项目,我们决定在后端使用 HotChocolate 作为 GraphQL-Server。其中一个想法是在前端已知的给定点周围的特定区域内找到一些东西。经过多次尝试,我们最终在数据对象上创建了一个方法并返回结果,但我们无法弄清楚如何过滤结果。

有没有人有关于如何过滤结果的建议,或者是否有另一种/更好的方法来实现目标?我们当前的实现看起来像这样([UsePaging][UseFiltering][UseSorting] 在查询中设置):

后端数据类型(摘录)

pulbic class Product
{
    public int ProductId { get; set; }
    public decimal price { get; set;] 

    // ... More propteries

    public double Distance(double lon,double lat)
    {
        // ...
    }
}

前端的 GraphQL 查询

query {
  products (where: {price: {lte: 40}},order: {price:DESC}) {
    totalCount
    nodes {
      productId
      price
      distance(lat:9,lon:47)
    }
  }
}

前端的 GraphQL 查询结果(如预期)

{
  "data": {
    "productList": {
      "totalCount": 40,"nodes": [
        {
          "productId": 40,"price": 40,"distance": 82.79875282093245
        },...
      ]
    }
  }
}

前端的 GraphQL 查询(不起作用:告诉“场距不是由类型“产品”定义的)

query {
  products (where: {price: {lte: 40},distance: {lte:50}},order: {price:DESC}) {
  }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...