diff --git a/src/api/forum.js b/src/api/forum.js
new file mode 100644
index 0000000..b228024
--- /dev/null
+++ b/src/api/forum.js
@@ -0,0 +1,38 @@
+import request from './request'
+
+export function getAllForums() {
+    return request({
+        url: '/api/forums',
+        method: 'get'
+    })
+}
+
+export function getForumById(id) {
+    return request({
+        url: `/api/forums/${id}`,
+        method: 'get'
+    })
+}
+
+export function createForum(data) {
+    return request({
+        url: '/api/forums',
+        method: 'post',
+        data
+    })
+}
+
+export function updateForum(id, data) {
+    return request({
+        url: `/api/forums/${id}`,
+        method: 'put',
+        data
+    })
+}
+
+export function deleteForum(id) {
+    return request({
+        url: `/api/forums/${id}`,
+        method: 'delete'
+    })
+} 
\ No newline at end of file
