0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ニフクラ mobile backendを拡張するNCMBプロキシを開発中です(デモ紹介)

Posted at

ニフクラ mobile backendでは認証やデータストア(クラウドデータベース)、ファイルストア(ファイルストレージ)、プッシュ通知など様々な機能があります。そして、サーバーレスで拡張できるスクリプト機能もあります。

しかし、実際のアプリ要件は多彩で、場合によっては他にも様々な機能が望まれます。すべての需要を満たすのは困難な場合もあります。そこで、NCMBのフロントとして動作するプロキシソフトウェアを開発中です。

このプロキシを使うことによって、小さなニーズはプロキシ側で実装できるようになります。今回はプロキシを使ったデモアプリを紹介します。

追加する機能(予定)

現状は透過的なプロキシ + リアルタイム通知くらいしかありませんが、以下のような機能を実装する予定です。

  • 認証をJSON Web Tokenに
  • GitHub認証
  • ソーシャル認証(標準ではサーバー認証が必要ですが、プロキシだけで認証できるように)
  • Webhooks
  • 署名なしでデータストア操作
  • 全リクエストログ記録

他にもデータストアの集計機能、GraphQL機能なども追加できると便利そうです。なお、Webhooksなどの機能はプロキシ経由でしか実現できませんので注意してください(管理画面で操作しても実行されません)。

インストール

NCMBMania/ncmb-proxyのリポジトリをクローンします。

git clone git@github.com:NCMBMania/ncmb-proxy.git

ライブラリをインストールします。

npm i

設定の編集

setting.example.yml をコピーして setting.yml を作成します。そして、ファイル内にあるアプリケーションキー、クライアントキーをそれぞれお持ちのものに書き換えてください。

applicationKey: YOUR_APPLICATION_KEY
clientKey: YOUR_CLIENT_KEY

サーバーを起動

サーバーを起動する際には、以下のコマンドを実行します(まだ開発中なので、開発用サーバーが立ち上がります)。

npm run dev

例えばローカルの場合、 http://localhost:3000 にてサーバーが立ち上がります。

デモ

デモサーバーを https://ncmb.moongift.dev で立ち上げてあります。これを実際に使っているデモをこちらに立ち上げています

0314 jsfiddle.net - 1026201726.jpg

このデモアプリでは以下のような機能を確認できます。

ドメインを変更した動作

NCMBの初期化を以下のように変更しています。これで接続先のサーバーを変更できます。また、アプリケーションキーとクライアントキーはサーバー側にありますので、完全に隠蔽できます。

const fqdn = "ncmb.moongift.dev";
const ncmb = new NCMB("dummy", "dummy", {
	fqdn,
	scriptFqdn: fqdn,
});

リアルタイム通知

WebSocketを使った通知も利用できます。URLは同じです。

const socket = new WebSocket(`wss://${fqdn}?classname=Test&action=create`);
socket.addEventListener('open', e => {
	log(`WebSocketに接続しました`);
});

パラメータの指定はニフクラ mobile backendを拡張するNCMBプロキシを開発中です(リアルタイム通信) - Qiitaを参照してください。

今回はアクションをcreateとしていますので、データを作成した際にイベント通知されます。

socket.addEventListener('message', e => {
	log(e.data);
});

送られてくるデータは以下のような文字列です。

{
	"action":"create",
	"objectId":"PWLaZ1SfI5KYRBA6",
	"createDate":"2022-10-26T11:23:41.199Z"
}

まとめ

プロキシサーバーを使うことで、キーを隠蔽できたり、リアルタイム通信などの追加機能が利用できます。NCMBをより便利に使いこなすために、ぜひご利用ください。

NCMBMania/ncmb-proxy

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?