保存当前工作进度 - 2025-06-20 18:08:36
Change-Id: I9465ca3726869f7cd91fe381097d780fe7fc1271
diff --git a/Merge/front/src/api/posts_api.js b/Merge/front/src/api/posts_api.js
new file mode 100644
index 0000000..a336da0
--- /dev/null
+++ b/Merge/front/src/api/posts_api.js
@@ -0,0 +1,136 @@
+// 帖子相关API接口
+// 整合不同后端服务的帖子功能
+
+// WZY 后端服务 - 帖子CRUD、点赞、评论
+const WZY_BASE_URL = 'http://10.126.59.25:5714'
+// LJC 后端服务 - 用户相关功能
+const LJC_BASE_URL = 'http://10.126.59.25:5715'
+
+// 通用请求函数
+const request = async (url, options = {}) => {
+ try {
+ const response = await fetch(url, {
+ headers: {
+ 'Content-Type': 'application/json',
+ ...options.headers
+ },
+ ...options
+ })
+ return await response.json()
+ } catch (error) {
+ console.error('API请求错误:', error)
+ throw error
+ }
+}
+
+// 帖子相关API
+export const postsAPI = {
+ // ===== 帖子基础功能 - 使用 WZY 服务 =====
+
+ // 获取帖子列表
+ fetchPosts: async (userId = null) => {
+ const url = userId ? `${WZY_BASE_URL}/posts?user_id=${userId}` : `${WZY_BASE_URL}/posts`
+ return await request(url)
+ },
+
+ // 获取帖子详情
+ fetchPost: async (postId) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}`)
+ },
+
+ // 创建帖子
+ createPost: async (postData) => {
+ return await request(`${WZY_BASE_URL}/posts`, {
+ method: 'POST',
+ body: JSON.stringify(postData)
+ })
+ },
+
+ // 更新帖子
+ updatePost: async (postId, postData) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}`, {
+ method: 'PUT',
+ body: JSON.stringify(postData)
+ })
+ },
+
+ // 删除帖子
+ deletePost: async (postId) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}`, {
+ method: 'DELETE'
+ })
+ },
+
+ // ===== 互动功能 - 使用 WZY 服务 =====
+
+ // 点赞帖子
+ likePost: async (postId, userId) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}/like`, {
+ method: 'POST',
+ body: JSON.stringify({ user_id: userId })
+ })
+ },
+
+ // 取消点赞
+ unlikePost: async (postId, userId) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}/like`, {
+ method: 'DELETE',
+ body: JSON.stringify({ user_id: userId })
+ })
+ },
+
+ // 添加评论
+ addComment: async (postId, userId, content, parentId = null) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}/comments`, {
+ method: 'POST',
+ body: JSON.stringify({
+ user_id: userId,
+ content,
+ parent_id: parentId
+ })
+ })
+ },
+
+ // 获取评论列表
+ fetchComments: async (postId) => {
+ return await request(`${WZY_BASE_URL}/posts/${postId}/comments`)
+ },
+
+ // ===== 用户相关功能 - 使用 LJC 服务 =====
+
+ // 获取用户信息
+ getCurrentUser: async () => {
+ return await request(`${LJC_BASE_URL}/api/current-user`)
+ },
+
+ // 获取用户详情
+ getUser: async (userId) => {
+ return await request(`${LJC_BASE_URL}/api/user/${userId}`)
+ },
+
+ // 获取用户帖子
+ getUserPosts: async (userId) => {
+ return await request(`${LJC_BASE_URL}/api/user/${userId}/posts`)
+ },
+
+ // 关注用户
+ followUser: async (followeeId) => {
+ return await request(`${LJC_BASE_URL}/api/follow/${followeeId}`, {
+ method: 'POST'
+ })
+ },
+
+ // 取消关注
+ unfollowUser: async (followeeId) => {
+ return await request(`${LJC_BASE_URL}/api/follow/${followeeId}`, {
+ method: 'DELETE'
+ })
+ },
+
+ // 获取收藏列表
+ getFavorites: async (userId) => {
+ return await request(`${LJC_BASE_URL}/api/user/${userId}/favorites`)
+ }
+}
+
+export default postsAPI