Help us understand the problem. What is going on with this article?

オープンソースのNode.jsフレームワーク LoopBack QuickStart

More than 1 year has passed since last update.

LoopBackとは

高い機能拡張性を持った、オープンソースの Node.js のフレームワーク

  • ほとんど、あるいは全くコードを書かずに、動的な end-to-end の REST APIs を作成できる。
  • 主要なリレーショナル・データベース、MongoDB、SOAPやREST APIのデータにアクセスできる。
  • モデル・リレーションシップと複雑なAPIへのアクセス制御を統合できる。
  • モバイルアプリのための、プッシュ通知、Geolocation、ファイル管理が扱える。
  • Android、iOS、JavaScript SDK のクライアントアプリを簡単に作ることができる。
  • オンプレミスでもクラウドでも動かすことができる。

事前にインストールが必要なもの

Node.js

% node --version
v10.7.0

% npm --version
6.4.0

インストール

LoopBack ツールのインストール

LoopBackアプリを作成・編集するために、 LoopBack コマンドラインインターフェース(CLI)ツール をインストール

npm install -g loopback-cli

正常にインストールされたかを確認

% lb --version
4.2.1 (generator-loopback@5.9.4 loopback-workspace@4.5.0)
lb --version  3.43s user 0.99s system 82% cpu 5.337 total

始める

単純なAPIの作成

アプリケーションの作成

# 作業用ディレクトリを作成
$ mkdir example-loopback/ && cd example-loopback/

LoopBack ツール を実行。
フレンドリーなアスキーアート(?)がいくつか質問してくるため、答えていく。

# ここでは、空のアプリケーション構築をリクエストする
$ lb
? アプリケーションの名前は何ですか? example-loopback
? どのバージョンの LoopBack を使用しますか? 3.x (Active Long Term Support)
? どのようなタイプのアプリケーションにしますか? empty-server (モデルおよびデータ・ソースが構成されていない空の LoopBack API)
.yo-rc.json の生成中


I'm all done. Running npm install for you to install the required dependencies. If this fails, try running the command yourself.


   create .editorconfig
   create .eslintignore
   create .eslintrc
   create server/boot/root.js
   create server/middleware.development.json
   create server/middleware.json
   create server/server.js
   create .gitignore
   create client/README.md
npm WARN deprecated swagger-ui@2.2.10: No longer maintained, please upgrade to swagger-ui@3.
npm notice created a lockfile as package-lock.json. You should commit this file.
added 439 packages from 454 contributors and audited 2292 packages in 11.529s
found 0 vulnerabilities



次のステップ:

  アプリケーションでモデルを作成します
    $ lb model

  アプリケーションを実行します
    $ node .

IBM の API Connect チームは、API Connect の中核を成す LoopBack の開発、
サポート、および保守を今後も継続します。
 ご使用の API に堅固な管理およびセキュリティー・オプションが必要な場合は、
http://ibm.biz/tryAPIC をご確認ください


ファイルが自動生成される

.
├── client
│   └── README.md
├── package-lock.json
├── package.json
└── server
     ├── boot
     │   └── root.js
     ├── component-config.json
     ├── config.json
     ├── datasources.json
     ├── middleware.development.json
     ├── middleware.json
     ├── model-config.json
     └── server.js

データソースの追加

LoopBackの QuickStart 通りに進めると、いきなり モデルの作成 に作業が進むが、データソースが設定されていない場合はそこから先に進めない(エラーとなる)。

したがって事前にデータソースを作成しておく。

練習用にオンメモリDBを利用.

$ cat <<EOF > server/datasources.json
{
  "db": {
    "name": "db",
    "connector": "memory",
    "file": "mydata.json"
  }
}
EOF

モデルの作成

  • モデルに使用する基本クラスを尋ねます。PersistedModel を選択
    • データベースにある永続的なデータソースにこのモデルを接続する場合に使用
  • REST API でモデルを公開
  • サーバー上でのみ公開
  • Book というモデルを作成。
    • title プロパティのみを保持。
$ lb model
? モデル名を入力してください: Book
? Book を付加するデータ・ソースを選択してください: db (memory)
? モデルの基本クラスを選択します PersistedModel
? REST API を介して Book を公開しますか? Yes
? カスタム複数形 (REST URL の作成に使用します):
? 共通モデルですか、あるいはサーバー専用ですか? サーバー
では、Book プロパティーをいくつか追加しましょう。

完了したら、空のプロパティー名を入力してください。
? プロパティー名: title
   invoke   loopback:property
? プロパティー・タイプ: string
? 必須 Yes
? デフォルト値 [なしの場合は空白のまま]:

別の Book プロパティーを追加しましょう。
完了したら、空のプロパティー名を入力してください。
? プロパティー名:

アプリケーションの実行

以下のコマンドを実行し、メッセージの通りブラウザで http://localhost:3000 にアクセス。

$ node .
Web server listening at: http://localhost:3000
Browse your REST API at http://localhost:3000/explorer

LoopBack API Explorer ( http://localhost:3000/explorer ) にアクセスすれば、サービスとして提供されている REST API が一覧で見える。

動作確認

LoopBack API Explorer ( http://localhost:3000/explorer ) を使って、動作確認をしてみる。

ブラウザからボタン一つでリクエストを投げられるようになっているので、試してみる。

はじめは0件なのでよくわからない。
PUT リクエストを投げればデータの新規登録が可能。

参考資料

LoopBack 3.x | LoopBack Documentation

genzouw
## Job Programmer ## Good at language Java, Groovy, PHP, Bash, JavaScript ## Other language C, C++, C#, Objective-C, VB, Delphi, HTML, CSS, SQL, Ruby
https://genzouw.com
zenkigen
「テクノロジーを通じて、人と企業が全機現できる社会の創出に貢献する」 『全機現』という言葉は、「人の持つ能力の全てを発揮する」という禅の言葉です。 多くの大人が全機現し、それを見た子供達が、大人になることに希望を持つ社会を次世代に引き渡したい。 その思いが当社の創業精神です。
https://harutaka.jp/
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