GraphQL实战:建模、查询与业务逻辑实现

1、为一个商业评论应用程序创建必要的 GraphQL 类型定义。

type Business {
  businessId: ID!
  name: String
  address: String
  avgStars: Float
  photos: [Photo]
  reviews: [Review]
}

type User {
  userId: ID!
  name: String
  photos: [Photo]
  reviews: [Review]
}

type Photo {
  business: Business
  user: User
  photoId: ID!
  url: String
}

type Review {
  reviewId: ID!
  stars: Float
  text: String
  user: User
  business: Business
}

2、现有一个示例 GraphQL API 缺少业务类别。需要更新示例数据、GraphQL 类型定义和解析器以利用业务类别,同时考虑到按类别搜索是明确的业务需求,思考如何在 API 中对类别进行建模。

可在 GitHub 仓库 github.com/johnymontana/fullstack-graphql-book 中找到相关练习的解决方案和代码示例。

具体操作如下:
- 更新示例数据,添加业务类别相关信息
- 更新 GraphQL 类型定义,增加业务类别字段
- 更新解析器,使其能处理与业务类别相关的查询

建模时,可将类别作为业务的一个属性,构建可按类别搜索的查询逻辑。

3、运行命令CALL db.schema.visualization()来检查数据模型。使用了哪些节点标签?有哪些关系类型?

节点标签有:

  • Business
  • Review
  • Category
  • User

关系类型有:

  • IN_CATEGORY (连接企业与其所属类别)
  • REVIEWS (连接评论与企业)
  • WROTE (连接用户与他们撰写的评论)

4、找出所有由名为“Will”的用户撰写的评论。该用户给出的平均评分是多少?

用户ID: u1
用户名:Will

评论内容:

  • 评论ID:r1
  • 评分:⭐⭐⭐
  • 内容:Friendly staff. Interlibrary loan is super fast

  • 评论ID:r3

  • 评分:⭐⭐⭐⭐⭐
  • 内容:Lots of glass and sunlight for reading. Comfy chairs in large print section.

平均评分:(3 + 5) / 2 = ⭐⭐⭐⭐

5、允许企业搜索除了按业务类别过滤外,还能按城市进行过滤。你需要

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值