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

More than 1 year has 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

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

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.