API สำหรับแอปพลิเคชันแชทสำหรับหลักสูตร DogeCodes React
นี่คือเซิร์ฟเวอร์ API แบบธรรมดาที่ใช้ตรรกะที่จำเป็นในการแก้ไขการทำงานของแอปพลิเคชัน DogeCodes React Chat
หากต้องการเรียกใช้เซิร์ฟเวอร์นี้ภายในเครื่อง คุณต้องมีข้อกำหนดเหล่านี้:
ใช้คำสั่งต่อไปนี้เพื่อรันเซิร์ฟเวอร์ API ภายในเครื่อง:
git clone https://github.com/dogecodes/react-chat-api.git
cd react-chat-api
npm install
npm run start:dev # or `npm start` for production
หมายเหตุ: อย่าลืมเริ่ม mongod
เพื่อเชื่อมต่อกับฐานข้อมูล
API เวอร์ชันปัจจุบันคือ v1
ดังนั้นคุณต้องระบุเวอร์ชันของ API ก่อนทุกเส้นทาง ตัวอย่างเช่น:
http://localhost:8000/v1/users/me
http://localhost:8000/v1/chats
นี่คือแผนที่เส้นทาง HTTP ของ API:
/
— เส้นทางที่เกี่ยวข้องกับการรับรองความถูกต้อง/signup
POST — สร้างผู้ใช้ใหม่ด้วย username
และ password
/login
POST — เข้าสู่ระบบผู้ใช้ด้วย username
และ password
/logout
GET — ออกจากระบบผู้ใช้ที่ใช้งานอยู่/users
— เส้นทางที่เกี่ยวข้องกับผู้ใช้/users
GET — ดึงข้อมูลเกี่ยวกับผู้ใช้ทั้งหมด/users/me
GET — ดึงข้อมูลผู้ใช้ของฉัน/users/me
POST — อัปเดตข้อมูลผู้ใช้ของฉัน ( username
, firstName
, lastName
และ city
)/users/:id
GET — ดึงข้อมูลเกี่ยวกับผู้ใช้ที่เฉพาะเจาะจง :id
/chats
— เส้นทางที่เกี่ยวข้องกับการแชท/chats
GET — รับข้อมูลเกี่ยวกับการแชททั้งหมด/chats
POST — สร้างแชทใหม่ด้วย title
ที่ระบุ/chats/my
GET — รับรายการแชทของผู้ใช้ทั้งหมด/chats/:id
GET — รับข้อมูลแชทพร้อมข้อความจากแชทเฉพาะ :id
/chats/:id
POST — ส่งข้อความใหม่เพื่อแชทกับเฉพาะ :id
/chast/:id
DELETE — ลบแชทเฉพาะ :id
มีเพียงผู้สร้างแชทเท่านั้นที่สามารถลบมันได้/chats/:id/join
GET — เข้าร่วมแชทกับ :id
ที่เฉพาะเจาะจง/chats/:id/leave
GET — ออกจากแชทโดยระบุ :id
หากคุณใช้ Insomnia เพื่อแก้ไขข้อบกพร่อง API คุณสามารถดาวน์โหลดข้อมูลสำรองพื้นที่ทำงานได้:
ดาวน์โหลด .zip
API นี้ยังส่งและฟังเหตุการณ์ socket.io บางอย่างด้วย
การเชื่อมต่อซ็อกเก็ตต้องมีการรับรองความถูกต้องด้วยโทเค็นการเข้าถึง นี่คือตัวอย่างการสร้างการเชื่อมต่อซ็อกเก็ต:
import SocketIOClient from 'socket.io-client' ;
socket = SocketIOClient ( 'path/to/api' , {
query : {
token : '...your access-token here...' ,
} ,
} ) ;
นี่คือรายการกิจกรรม:
new-message
— แจ้งเมื่อมีคนส่งข้อความใหม่ไปยังแชทที่ระบุnew-chat
— แจ้งเมื่อมีคนสร้างแชทใหม่deleted-chat
— แจ้งเมื่อมีคนลบแชท connection
— การเชื่อมต่อของไคลเอ็นต์ socket.iomount-chat
— ติดตั้งไคลเอนต์เพื่อฟังข้อความในการแชทด้วย :chatId
เฉพาะunmount-chat
— เลิกเมานท์ไคลเอ็นต์จากการฟังข้อความในการแชทด้วย :chatId
ที่เฉพาะเจาะจงsend-message
— ส่งข้อความพร้อม content
เพื่อแชทด้วย MIT © Denys Dovhan