📺 numberOfViews++
我们准备如何更新曲目的观看次数?为此,我们准备访问我们的 REST API 文档!
首先,我们来观察执行GET track/:id
端点(ID c_0
),所得到的响应。响应成功时,我们会收到该曲目,并且可以看到当前的观看次数。你所看到的数字取决于最近有多少其他人完成了本课程!
要增加观看次数,我们会查看 PATCH track/:id/numberOfViews
端点,它会更新某个曲目的观看次数。
我们来试用此端点,并给它相同的曲目 ID c_0
。当执行此调用时,我们会得到一个 200 成功
响应和修改后的曲目。我们可以看到观看次数已经增加了!如果再次运行,我们会看到观看次数再次增加。
注意,由于 API 是公开的,您可能不会看到视图数量增加了 1。其他人可能正在使用该 API,就像我们现在正在做的那样。但我们知道,从 200
响应代码中可以看出,我们能够增加这个数字。
如果向下滚动,我们还可以看到可能会有一个不成功的响应。让我们通过提供一个我们确信不存在的愚蠢的 ID 来对此进行测试,例如 DOESNTEXIST
。
执行此调用时,我们得到了预期的响应,即 404 Error: Not Found
。我们稍后将了解如何处理此问题。
📈 更新数据源
现在我们知道了调用哪个终结点以及如何调用,让我们向我们的数据源中
新增一个方法!RESTDataSource
的老朋友吗?在 Lift-off II 中我们使用过它来创建我们自己的 TrackAPI
。
RESTDataSource
类来处理数据检索?我们可以在 server/src/datasources
文件夹中的 track-api.js
文件中找到 TrackAPI
数据源。
在这个文件中,我们将在 TrackAPI
类中添加一个名为 incrementTrackViews
的新方法。
incrementTrackViews(trackId) {return this.patch(`track/${trackId}/numberOfViews`);}
此方法接受一个 trackId
参数。在其中,我们需要发出一个 HTTP PATCH
请求,我们可以通过调用this.patch
来完成这项操作。此方法由我们继承自 RESTDataSource
类的。
在圆括号内,我们为它指定端点,即 track/
,后跟 trackId
,再后跟 /numberOfViews
。最后,我们返回调用结果。
此 数据源现已做好准备,可以发出 解析器需要的 REST API 调用。让我们接下来进行设置!
分享你对本课程的疑问和评论
你的反馈有助于我们进行改进!如果你遇到困难或困惑,请告诉我们,我们来帮助你。所有评论都是公开的,并且必须遵循 Apollo 行为准则。注意,已解决或已处理的评论可能会被删除。
你需要一个 GitHub 帐户才能在下方发表评论。还没有帐户吗? 转而在我们的 Odyssey 论坛中发表评论。