LoopBack là gì?

  • LoopBack là một opensource framework dạng mobile backend as a service (mBaaS) rất mạnh để thiết kế Rest API. Nếu bạn đã từng dùng qua Parse, Firebabase thì framework này ko có gì xa lạ cả.
  • Cty đứng sau LoopBack này là IBM, quá tuyệt phải ko

Cài đặt loopback

Về lý thuyết thì bạn có thể cài đặt bằng tay, nhưng để đơn giản và dễ dàng thì bạn nên dùng LoopBack tools . Theo kinh nghiệm của tôi thì bạn nên cài đặt node qua nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bash
nvm install node

LoopBack tool

npm install -g loopback-cli

Tạo rest API

Tạo ứng dụng bằng LoopBack, bạn dùng lệnh sau

lb

Loopback generator sẽ hỏi bạn tên của application và folder directory.

_-----_
|       |    .--------------------------.
|--(o)--|    |  Let's create a LoopBack |
`---------´   |       application!       |
( _´U`_ )    '--------------------------'
/___A___\
|  ~  |
__'.___.'__
´   `  |° ´ Y `
[?] What's the name of your application? FramgiaNode
[?] Enter name of the directory to contain the project: framgia-node
[?] Which version of LoopBack would you like to use? 3.x (current)
[?] What kind of application do you have in mind? api-server (A LoopBack API server with local User auth)

LB generator sẽ hiển thị thông báo như:

  • Khởi tạo cấu trúc project
  • Tạo file JSON mặc định
  • Tạo file JS mặc định
  • Download và cài đặt dependent node module
  • Tạo models

Thiết kế API bằng LoopBack  image 1

Tạo models

Giờ đến bước chúng ta mở rộng project . Ta sẽ tién hành tạo Book model, LB generator sẽ tự động sinh ra REST API endpoint và api doc bằng swagger.

cd framgia-node
lb model

Generator sẽ hỏi bạn những thông tin sau:

Tên model:

? Enter the model name: Book

Datasource (ở dây tôi chọn memory):

? Select the datasource to attach Book to: db (memory)

Base class sử dụng cho model, nêu bạn connect model tới persistent data source trong database thì chọn như bên dưới:

? Select model's base class PersistedModel

Bước tiếp là tạo REST API. Đây là một trong nhưng ưu điểm của LB.

? Expose Book via the REST API? Yes

Tạo route liên kết với model:

? Custom plural form (used to build REST URL):

Tiếp theo là thư mục sẽ chứa model, nếu chọn /common thì model có thể sử dụng đc ở cả client và server side.

? Common model or server only? common

Mỗi model sẽ có các thuộc tính, ở đây Book sẽ có các thông tin như title, author

Let's add some Book properties now.

Enter an empty property name when done.
? Property name: title
   invoke   loopback:property
? Property type: string
? Required? Yes
? Default value[leave blank for none]:

Let's add another Book property.
Enter an empty property name when done.
? Property name: author
   invoke   loopback:property
? Property type: string
? Required? Yes
? Default value[leave blank for none]:

Model generator sẽ tạo 2 trong thư mục common/model của project: book.js, book.json

Chạy ứng dụng

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

Mở browser và trỏ đến http://localhost:3000 bạn sẽ thấy thông tin mặc định của app ở dạng JSON:

{
started: "2017-10-05T03:47:55.271Z",
uptime: 127.605
}

Trỏ đến http://localhost:3000/explorer là thông tin API. Bạn ko phải là người duy nhất sử dụng API bạn vừa tạo, nghĩa là bạn cần có document cho API đó. Thật là may mắn vì LB đã giúp bạn làm việc đó. Tại đây bạn có thể test API trực tiếp trên trình duyệt các action như Create, Read, Update, Delete (CRUD) mà ko cần dùng Postman hay curl. Tất cả các request, response giữa client và server đều dùng JSON giao tiếp.

Thiết kế API bằng LoopBack  image 1

Lời kết:

Qua vài bước đơn giản sử dụng LoopBack, bạn đã tạo được model, properties của model và exposed qua REST API rồi đấy chúc các bạn thành công.

Viết câu trả lời

Drop Images

0 Bình luận