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.io.mount-chat
— монтирует клиент для прослушивания сообщений в чате с определенным :chatId
.unmount-chat
— отключить клиента от прослушивания сообщений в чате с определенным :chatId
.send-message
— отправить сообщение с content
для общения MIT © Денис Довгань