4
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

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

こちらの記事で、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

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?