Skip to content

Web API offering real-time chat capabilities through WebSocket connections.

License

Notifications You must be signed in to change notification settings

nakaryo716/chat-app-server

Repository files navigation

chat-app-server

Overview

Rustで書かれた軽量かつシンプルなオープンソースのチャット機能を提供するWeb APIです。
WebSocketを使用し、リアルタイムチャットを実現します。最小限の機能で動作し、拡張が容易です。

Features

  • 軽量で高速なチャット機能
  • WebSocketを使用したリアルタイム通信
  • シンプルなAPI設計
  • JWTを使用した認証

Getting Started

Prerequisites

以下のソフトウェアが必要です:

Installation And Run

  1. リポジトリをクローンします:
    git clone https://github.com/nakaryo716/chat-app-server
    cd chat-app-server
  2. SSL証明書の作成を行います:
    ./nginx/ssl/README.mdを参照し、OpenSSLを使用して証明書を作成します。
  3. Dockerコンテナを立ち上げます:
    docker compose up
  4. nginx, app, dbコンテナが起動し、APIが使用可能になります。デフォルトではhttps://localhost:1443でアクセス可能です。
    変更したい場合(https://localhost:443)は```compose.yaml```の```port```を変更してください。
    port
    container name: port
    ------------------------
    nginx         : 1443, 180
    app           : 8080
    db            : 15432
    

Sample Client Application

このAPIとnextjsを使った実際のアプリケーションは以下のリポジトリから取得し、実行することができます。
最初にAPI側のコンテナを起動してください

chat-appリポジトリのclone

git clone https://github.com/nakaryo716/chat-app
cd chat-app

dockerコンテナの起動

docker compose up

クライアントアプリの起動の仕方についてはREADME.mdを参照してください。

API Endpoints

ユーザー登録

Method: POST
URL: https://localhost:1443/user
Request Body:

{
    "userName": "your user name",
    "userMail": "[email protected]",
    "userPass": "youruserpass"
}

ログイン

Method: POST
URL: https://localhost:1443/login
Request Body:

{
    "userMail": "[email protected]",
    "userPass": "youruserpass"
}

CookieにJWTが保存される

ユーザー情報取得

Method: GET
URL: https://localhost:1443/user
Auth: JWTが有効である必要がある

ユーザー削除

Method: DELETE
URL: https://localhost:1443/user
Auth: JWTが有効である必要がある
Request Body:

{
    "userMail": "[email protected]",
    "userPass": "youruserpass"
}

チャットルーム作成

Method: POST
URL: https://localhost:1443/room
Auth: JWTが有効である必要がある
Request Body:

{
    "roomName": "room name",
}

全てのチャットルーム情報取得

Method: GET
URL: https://localhost:1443/room
Auth: JWTが有効である必要がある

特定のチャットルーム情報取得

Method: GET
URL: https://localhost:1443/room/:id
Auth: JWTが有効である必要がある

チャットルームの削除

Method: DELETE
URL: https://localhost:1443/room/:id
Auth: JWTが有効である必要がある

チャット参加(WebSocket)

Method: GET
URL: wss://localhost:1443/chat/:id
Auth: JWTが有効である必要がある

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Web API offering real-time chat capabilities through WebSocket connections.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published