Edited at

LoopbackのRESTサービスを公開しない(一部使用できない)ようにする

More than 3 years have passed since last update.

こちらの記事で、Loopbackを使ったRESTfulなWebサービスをさくっと作ってみたのですが、

正直こんなにいらない、公開したくないというケースはあるはず。

不要なサービスを塞ぐ方法をメモ。


自動生成によって作成されたスクリプト(Remind)

Yoemonでモデルを作成した際に、モデル定義のJSONファイルと、

下記のスクリプトファイルが出来上がる。


sample-model.js

module.exports = function(SampleModel) {

};


塞ぎの制御ではスクリプトファイルを変更する


塞ぎ定義を追加する


Model.disableRemoteMethod(name, isStatic)

塞ぎの定義はModel.disableRemoteMethod(name, isStatic)を使用する。

詳しくはAPIドキュメントで確認していただくとして、

概要としては下記のようなもの。


  • name :メソッド名

  • isStatic :staticなメソッドかどうか(staticならtrue)

「staticなメソッドかどうか」ってどういうことだ!というところですが、

PersistedModelのstaticメソッドかどうかという話のようです。

モデル間のリレーション関係などは除いて、モデル単体でデフォルトで作成されてくるREST APIのメソッドは

すべて「static」ということで問題ありません。

(リレーションがある場合のものは別に整理することにしよう。忘れないように。)

2015/05/13追記:

こちらにリレーション関係のmethodのリストがあったのでメモ。


実際の塞ぎ

例えば、HTTP POSTで投げたときに使われる「create」を塞ぐ場合は下記のとおり。


sample-model.js

module.exports = function(SampleModel) {

SampleModel.disableRemoteMethod('create', true);
};


この定義を加えた上で、Nodeアプリケーションを再起動して、

explorer(Express画面)を確認すると、1行消えている。

AFTER

after.png

BEFORE

before.png

こんな感じで、使いたいものだけを残すのも簡単にできるのでした。