これはチャットアプリケーションのサンプルAPIです。以下の機能が含まれています。
- 1対1のチャット
- 複数人のグループチャット
- メッセージの一覧取得、投稿、削除
- メッセージの未読、既読の確認
- 新着メッセージの通知
- 通知設定
- Push通知
- メール通知
- 通知しない
以下の手順でインストールできます。
# リポジトリをクローンします
git clone https://github.com/dai175/chat-api.git
# ディレクトリに移動します
cd chat-api
# 環境変数ファイルを作成し、必要に応じて更新します
cp .env.develop .env
# Dockerコンテナを起動します
docker compose up -d
# データベースをセットアップします
docker compose exec api python setup_db.py
Push通知にPusherを利用しています。以下の手順で設定が必要です。
- Pusherのアカウントを作成します。以下のURLにアクセスしてください。
https://pusher.com/beams/ - インスタンスを作成してください。
- Overview画面からWebの通知設定を行ってください。
- Key画面からInstance ID、Primary Keyを確認し、
.env
ファイルに以下の内容を追記してください。PUSHER_INSTANCE_ID=xxxxxx(Instance ID) PUSHER_SECRET_KEY=xxxxxx(Primary Key)
- ユーザーを作成します。以下のURLにアクセスし、
POST /register
から作成してください。
http://localhost:8000/docs# - ログイン画面からメールアドレスとパスワードを入力してログインします。以下のURLにアクセスしてください。
http://localhost:8000 - チャット画面からチャットを開始します。具体的な手順は以下の通りです。
- グループチャット
Chat Type
からGroup Chat
を選択します。Room ID
に部屋番号(任意の文字列)を入力します。Connect
ボタンをクリックします。Message
にメッセージを入力し、Send
ボタンで送信します。
- ダイレクトチャット
Chat Type
からDirect Chat
を選択します。Receiver ID
に相手のユーザーID(UUID)を入力します。Connect
ボタンをクリックします。Message
にメッセージを入力し、Send
ボタンで送信します。
- グループチャット
- 開発用メールサーバーとしてMailHogを利用しています。メール通知を確認するには、以下のURLにアクセスしてください。
http://localhost:8025
テストコードは未作成です。