保存当前工作进度 - 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