使用应用程序

要使用我们新组装的 Web 应用程序,首先确保已成功完成 “技术需求” 部分中描述的数据库设置步骤和 Postman 安装。然后在 IntelliJ 中运行 WordzApplication 类的 main() 方法。这将启动端点,准备接受请求。

一旦服务运行起来,我们与之交互的方式就是向端点发送 HTTP 请求。启动 Postman 后(在 macOS 上),会出现一个如下所示的窗口:

image 2025 01 12 22 09 16 971
Figure 1. Figure 15.10 – Postman home screen

我们首先需要启动一个游戏。为此,我们需要向端点的 /start 路由发送 HTTP POST 请求。默认情况下,这将位于 http://localhost:8080/start。我们需要发送一个包含 JSON {"name":"testuser"} 文本的请求体。

我们可以从 Postman 发送此请求。我们点击主页上的 “Create a request” 按钮。这将带我们进入一个视图,我们可以在其中输入 URL,选择 POST 方法并输入我们的 JSON 请求体数据:

  1. 创建一个 POST 请求来开始游戏。

    image 2025 01 12 22 10 38 203
    Figure 2. Figure 15.11 – Start a new game

    点击蓝色的 “Send” 按钮。图15.11 中的截图显示了发送的请求——在屏幕的上半部分——以及响应。在这种情况下,游戏成功为名为 testuser 的玩家启动。端点按预期执行,并发送了一个 HTTP 状态码 204 No Content。这可以在响应面板中看到,位于截图的底部。

    快速检查数据库中的 game 表内容,可以看到已为此游戏创建了一行:

    wordzdb=# select * from game;
    player_name | word  | attempt_number | is_game_over
    -------------+-------+----------------+--------------
    testuser    | ARISE |              0 | f
    (1 row)
    wordzdb=#
  2. 我们现在可以进行第一次猜词。让我们尝试猜测 "STARE"。以下是相应的 POST 请求及来自我们端点的响应,如下图所示:

    image 2025 01 12 22 12 25 996
    Figure 3. Figure 15.12 – Score returned

    端点返回 HTTP 状态码 200 OK。这次返回了一个 JSON 格式的数据体。我们看到 "scores":"PXPPC",表示我们猜测的第一个字母 S 出现在单词中的某个位置,但不在第一个位置。我们猜测的第二个字母 T 是错误的,没有出现在目标单词中。我们的猜测中还有两个部分正确的字母和一个最终正确的字母,即末尾的字母 E

    响应还显示 "isGameOver":false。我们还没有完成游戏。

  3. 我们再做一次猜测,稍微作弊一下。让我们发送一个猜测为 "ARISE" 的 POST 请求:

    image 2025 01 12 22 14 01 509
    Figure 4. Figure 15.13 – A successful guess

    胜利!我们看到 "scores":"CCCCC",告诉我们猜测的所有五个字母都是正确的。"isGameOver":true 告诉我们游戏已经结束,这次是成功的。

我们已经成功地使用我们的微服务玩了一局 Wordz 游戏。