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 = ⭐⭐⭐⭐