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
