Ayasya WhatsAppゲートウェイ (ayasya-wagw)
概要
「ayasya-wagw」は、WhatsApp をプログラムから扱うためのゲートウェイ API 実装です。Baileys をコアにして複数インスタンス(複数の WhatsApp セッション)を扱える設計になっており、Express.js で REST API を提供、Prisma と MySQL でセッション情報やメッセージメタデータを永続化します。API ドキュメントや実装サマリーがリポジトリに同梱されており、実運用を意識した構成・設定例(.env.example)や導入手順が用意されています。Node v17 以降を要件とし、ライセンスは ISC です。
リポジトリの統計情報
- スター数: 18
- フォーク数: 4
- ウォッチャー数: 18
- コミット数: 3
- ファイル数: 11
- メインの言語: JavaScript
主な特徴
- Baileys を使った WhatsApp Web プロトコルの実装によりメッセージ送受信を提供
- 複数インスタンス(複数アカウント)の同時運用を想定したアーキテクチャ
- Prisma + MySQL によるセッション・データの永続化
- API ドキュメント、実装サマリー、環境設定サンプルを同梱
技術的なポイント
ayasya-wagw は、WhatsApp のクライアント実装ライブラリである Baileys を基盤に、サーバーサイドでの安定運用を意識して設計されています。Baileys は WhatsApp Web のプロトコルを利用してブラウザレスでメッセージ操作を行えるため、これを複数のインスタンスで管理することで複数アカウントの同時運用が可能になります。リポジトリは Express.js を用いて RESTful なエンドポイントを公開し、外部システムからメッセージ送信やセッション操作を行える API 層を提供します。
データ永続化は Prisma(TypeScript/Node 向け ORM)と MySQL を用いることで、接続セッション情報、ログ、配信メタデータなどを安定して保存できます。Prisma による型安全な DB 操作は、開発時のミスを減らし、マイグレーション管理も容易にします。設計上はセッションの永続化と復元機能が重要で、Baileys の認証情報を DB に保持して再接続や再起動時にセッションを復元するワークフローが想定されます。
運用面ではマルチインスタンス構成に伴うスケーリングと孤立性(あるインスタンスの障害が他に波及しないこと)、およびメッセージ伝達の信頼性(再送やキューイング)を考慮する必要があります。API 層は認証・権限管理やレート制御、Webhook 連携を備えることで外部サービスとの統合を容易にします。README や API_DOCUMENTATION.md、IMPLEMENTATION_SUMMARY.md があるため、導入手順・環境変数の設定(.env.example)・各エンドポイントの仕様が参照でき、運用とカスタマイズの初動コストを下げる構成です。Node.js >=17 を前提としている点や、ISC ライセンスの採用も確認できます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .env.example: file
- .gitignore: file
- API_DOCUMENTATION.md: file
- IMPLEMENTATION_SUMMARY.md: file
- README.md: file
…他 6 ファイル
まとめ
Baileys + Express + Prisma を組み合わせたマルチインスタンス WhatsApp API の実践例で導入ガイドも整備済み。
リポジトリ情報:
- 名前: ayasya-wagw
- 説明: Ayasya Whatsapp Gateway By Ayasya Tech Indonesia
- スター数: 18
- 言語: JavaScript
- URL: https://github.com/radhityaa/ayasya-wagw
- オーナー: radhityaa
- アバター: https://avatars.githubusercontent.com/u/125421118?v=4
READMEの抜粋:
📱 WhatsApp Gateway API
A comprehensive, production-ready multi-instance WhatsApp Gateway API built with Baileys, Express.js, Prisma, and MySQL.
Features • [Installation](#-installati…