3分钟上手wewe-rss API:从0到1构建个性化订阅服务
【免费下载链接】wewe-rss 项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss
你是否还在为管理多个RSS订阅源而烦恼?wewe-rss提供一站式解决方案,通过简单API调用即可聚合、过滤和转换各类订阅内容。本文将带你从基础调用到高级集成,3分钟内搭建专属订阅系统。
一、API概览:3个核心接口搞定订阅管理
wewe-rss API采用RESTful设计,主要包含三大功能接口,覆盖从源管理到内容获取的全流程:
| 接口路径 | 方法 | 功能描述 | 权限要求 |
|---|---|---|---|
/feeds | GET | 获取所有订阅源列表 | 公开 |
/feeds/all.{type} | GET | 获取聚合订阅内容 | 公开 |
/feeds/{id}.{type} | GET | 获取指定源订阅内容 | 公开 |
核心数据流程
二、快速开始:5行代码实现订阅聚合
1. 获取所有订阅源
curl http://localhost:3000/feeds
返回示例(JSON):
[
{"id":"feed1","name":"技术周刊","intro":"前端技术精选","cover":"https://example.com/cover1.jpg"},
{"id":"feed2","name":"产品思维","intro":"互联网产品观察","cover":"https://example.com/cover2.jpg"}
]
2. 获取聚合内容(支持多格式输出)
# Atom格式(默认)
curl http://localhost:3000/feeds/all.atom
# RSS格式
curl http://localhost:3000/feeds/all.rss
# JSON格式
curl http://localhost:3000/feeds/all.json
3. 高级过滤:精准获取所需内容
通过查询参数实现内容过滤,支持分页、关键词包含/排除:
# 分页获取第2页内容(每页10条)
curl "http://localhost:3000/feeds/feed1.rss?page=2&limit=10"
# 只包含"AI"关键词的文章
curl "http://localhost:3000/feeds/all.atom?title_include=AI"
# 排除"招聘"相关文章
curl "http://localhost:3000/feeds/all.json?title_exclude=招聘"
三、高级功能:从基础调用到业务集成
1. 实时更新触发
通过URL参数强制更新指定订阅源:
curl "http://localhost:3000/feeds/feed1.rss?update=true"
2. 全文模式切换
默认返回摘要内容,添加mode=fulltext参数获取完整文章:
curl "http://localhost:3000/feeds/all.atom?mode=fulltext"
3. 定时任务配置
系统默认每日5:35和17:35自动更新(北京时间),可通过环境变量自定义:
# 修改更新频率为每小时执行
export CRON_EXPRESSION="30 * * * *"
四、部署与集成:3种方式接入现有系统
1. Docker快速部署
# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/we/wewe-rss
# 启动服务
cd wewe-rss && docker-compose up -d
部署配置文件:docker-compose.yml
2. 前端集成示例(React)
import { useEffect, useState } from 'react';
function RssReader() {
const [articles, setArticles] = useState([]);
useEffect(() => {
fetch('/feeds/all.json')
.then(res => res.json())
.then(data => setArticles(data.items));
}, []);
return (
<div className="feed-list">
{articles.map(item => (
<div key={item.id} className="feed-item">
<h3>{item.title}</h3>
<p>{item.summary}</p>
</div>
))}
</div>
);
}
3. 第三方服务集成
通过Webhook实现新内容推送:
# Python示例:监控特定订阅源更新
import requests
def check_feed_update(feed_id):
response = requests.get(f"http://localhost:3000/feeds/{feed_id}.json")
latest_time = response.json()['updated']
# 对比本地记录,有更新则触发通知
五、常见问题与性能优化
Q: 如何提高API响应速度?
A: 系统内置LRU缓存机制(默认缓存5000条内容),缓存实现:apps/server/src/feeds/feeds.service.ts#L18-L20
Q: 支持哪些订阅格式转换?
A: 内置Feed类支持Atom 1.0、RSS 2.0和JSON Feed 1.0,格式渲染逻辑:apps/server/src/feeds/feeds.service.ts#L307-L315
Q: 如何扩展自定义输出格式?
A: 可扩展handleGenerateFeed方法,添加新的格式处理分支,参考现有实现扩展。
六、总结与进阶路线
通过wewe-rss API,你已掌握: ✅ 多格式订阅内容获取 ✅ 灵活的内容过滤机制 ✅ 无缝集成现有系统的能力
进阶方向:
- 开发自定义插件扩展过滤规则
- 实现用户个性化订阅配置
- 对接消息推送服务(如钉钉机器人)
钉钉机器人模块:wewe-rss-dingtalk/
立即访问项目仓库,开始构建你的个性化订阅系统吧!
【免费下载链接】wewe-rss 项目地址: https://gitcode.com/GitHub_Trending/we/wewe-rss
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






