本文档详细介绍了 RealWorld API 规范中的评论和标签端点。这些端点允许用户与文章评论互动并检索整个平台中使用的标签。有关文章管理的信息,请参阅文章端点。
评论和标签端点是 RealWorld 平台的重要组成部分,通过文章评论实现社交互动,并通过标签组织内容。这些端点遵循 RESTful 原则并在 OpenAPI 规范中定义。
来源: api/openapi.yml291-364 api/openapi.yml410-421
评论与特定文章关联,并由用户撰写。API 提供列出、创建和删除评论的端点。
| 端点 | 方法 | 目的 | 需要认证 |
|---|---|---|---|
/articles/{slug}/comments | GET | 获取文章评论 | 可选 |
/articles/{slug}/comments | POST | 为文章创建评论 | 必填 |
/articles/{slug}/comments/{id} | DELETE | 删除文章评论 | 必填 |
检索由其 slug 标识的特定文章的所有评论。
端点: GET /articles/{slug}/comments
参数:
slug(路径参数):要获取评论的文章的 slug示例响应:
来源: api/openapi.yml291-310 apps/documentation/src/content/docs/specifications/backend/api-response-format.md125-142
为特定文章创建新评论。
端点: POST /articles/{slug}/comments
参数:
slug(路径参数):要创建评论的文章的 slug请求体:
示例响应:
来源: api/openapi.yml311-335 apps/documentation/src/content/docs/specifications/backend/api-response-format.md106-123
从文章中删除特定评论。
端点: DELETE /articles/{slug}/comments/{id}
参数:
slug(路径参数):包含评论的文章的 slugid(路径参数):要删除的评论的 ID响应:成功时返回 200 OK,正文为空
标签用于对文章进行分类。API 提供一个端点来检索系统中使用的所有标签。
| 端点 | 方法 | 目的 | 需要认证 |
|---|---|---|---|
/tags | GET | 获取所有标签 | 否 |
检索平台所有文章中使用的所有标签列表。
端点: GET /tags
示例响应:
来源: api/openapi.yml410-421 apps/documentation/src/content/docs/specifications/backend/api-response-format.md144-152
来源: api/openapi.yml561-581 apps/api/prisma/migrations/20241009081140_init/migration.sql15-24
来源: api/openapi.yml604-616 apps/api/prisma/migrations/20241009081140_init/migration.sql27-30 apps/api/prisma/migrations/20241009081140_init/migration.sql44-49
来源: api/openapi.yml291-364 api/openapi.yml410-421
评论和标签模型在数据库模式中使用 Prisma 定义。以下是表及其关系的详细视图
CREATE TABLE "Comment" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
"body" TEXT NOT NULL,
"articleId" INTEGER NOT NULL,
"authorId" INTEGER NOT NULL,
CONSTRAINT "Comment_articleId_fkey" FOREIGN KEY ("articleId") REFERENCES "Article" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "Comment_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "User" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE "Tag" (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" TEXT NOT NULL
);
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
CREATE TABLE "_ArticleToTag" (
"A" INTEGER NOT NULL,
"B" INTEGER NOT NULL,
CONSTRAINT "_ArticleToTag_A_fkey" FOREIGN KEY ("A") REFERENCES "Article" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "_ArticleToTag_B_fkey" FOREIGN KEY ("B") REFERENCES "Tag" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE UNIQUE INDEX "_ArticleToTag_AB_unique" ON "_ArticleToTag"("A", "B");
CREATE INDEX "_ArticleToTag_B_index" ON "_ArticleToTag"("B");
来源: apps/api/prisma/migrations/20241009081140_init/migration.sql15-24 apps/api/prisma/migrations/20241009081140_init/migration.sql27-30 apps/api/prisma/migrations/20241009081140_init/migration.sql44-49 apps/api/prisma/migrations/20241009081140_init/migration.sql70-83
评论和标签端点在 OpenAPI 规范中定义,并在 RealWorld API 中实现。创建和删除评论需要认证,而读取评论和标签无需认证。
来源: api/openapi.yml291-364 api/openapi.yml410-421 api/openapi.yml826-836
评论和标签端点可以使用 RealWorld API 仓库中提供的 Postman collection 进行测试。有关如何运行这些测试的更多详细信息,请参阅API 测试页面。