# poem_server **Repository Path**: zlaxx/poem_server ## Basic Information - **Project Name**: poem_server - **Description**: 极简诗词服务器端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-09 - **Last Updated**: 2025-04-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 诗歌 API 服务 这是一个基于 Express 框架开发的诗歌 API 接口服务,提供诗歌数据的查询功能。 ## 功能特点 - 提供诗歌列表查询接口 - 支持按标签类型筛选诗歌 - 支持分页查询 - 提供单个诗歌详情查询 ## 安装与运行 ### 前置条件 - Node.js (v12.0.0 或更高版本) - npm (v6.0.0 或更高版本) ### 安装步骤 1. 克隆或下载本项目到本地 2. 进入项目目录,安装依赖: ```bash npm install ``` 3. 启动服务: ```bash npm start ``` 服务将在 http://localhost:3005 上运行。 ## API 接口说明 ### 获取指定类型诗词列表 ``` GET /api/poems/type/:type/:page?/:limit? ``` #### 路径参数 - `type` (必填): 诗词类型,可选值:daily(名句推荐)、tang(唐诗)、song(宋词)、yuan(元曲) - `page` (可选): 页码,默认为 1 - `limit` (可选): 每页条数,默认为 10 #### 响应示例 ```json { "code": 200, "message": "success", "data": [ { "id": 3001, "title": "登鹳雀楼", "author": "王之涣", "content": "白日依山尽,黄河入海流。欲穷千里目,更上一层楼。", "dynasty": "唐", "tags": ["山水", "励志"], "type": "tang" }, { "id": 3002, "title": "静夜思", "author": "李白", "content": "床前明月光,疑是地上霜。举头望明月,低头思故乡。", "dynasty": "唐", "tags": ["思乡", "离别"], "type": "tang" } ], "collect_count": 5, "total": 5, "page": 1, "limit": 10, "type": "tang" } ``` ### 获取单个诗歌详情 ``` GET /api/poems/:id ``` #### 路径参数 - `id`: 诗歌 ID #### 响应示例 ```json { "code": 200, "message": "success", "data": { "id": "1001", "title": "登鹳雀楼", "author": "王之涣", "dynasty": "唐", "content": "白日依山尽,\n黄河入海流。\n欲穷千里目,\n更上一层楼。", "translation": "夕阳依傍着西山慢慢地沉没下去,滔滔黄河朝着东海汹涌奔流。如果想要看到千里之外的风光,那就要登上更高的一层楼。", "appreciation": "这首诗描绘了诗人登上鹳雀楼所望到的壮丽景色,以及由此引发的豁达开朗的情怀。诗中'欲穷千里目,更上一层楼'蕴含了诗人追求上进的精神。" } } ``` ## 标签类型说明 本系统中的诗歌按以下标签进行分类: - 爱情:描写爱情、相思之情的诗歌 - 友情:描写朋友之间情谊的诗歌 - 思乡:描写思念家乡、亲人的诗歌 - 励志:包含积极向上、激励人心内容的诗歌 - 山水:描写自然风光、山川景色的诗歌 - 离别:描写离别、送别场景与情感的诗歌 ## 错误处理 当请求的资源不存在时,API 将返回 404 状态码: ```json { "code": 404, "message": "poem not found" } ``` 当请求的类型参数无效时,API 将返回 400 状态码: ```json { "code": 400, "message": "Invalid type parameter. Valid values are: daily, tang, song, yuan" } ```