Chinese Documentation : 创建一个简单的API

Icon

Prerequisite: Install StrongLoop software as described in 安装 StrongLoop.

Recommended: Read LoopBack 核心概念.

Use the LoopBack command-line tool, slc loopback, to quickly create a LoopBack application, models, and data sources.  


你可以通过LoopBack 命令行程序 - "slc loopback" 创建一个框架应用(Scaffold)。

创建一个新应用

使用 application generator 创建一个型应用

$ slc loopback

LoopBack 应用生成器会提示你输入应用的名称。

输入loopback-getting-started作为项目的名称。 然后输入项目的目录(直接按回车会将项目名称作为目录)

     _-----_
    |       |    .--------------------------.
    |--(o)--|    |  Let's create a LoopBack |
   `---------´   |       application!       |
    ( _´U`_ )    '--------------------------'
    /___A___\
     |  ~  |
   __'.___.'__
 ´   `  |° ´ Y `
[?] What's the name of your application? loopback-getting-started
[?] Enter name of the directory to contain the project: loopback-getting-started
Icon

你当然可以用其他名字取代 "loopback-getting-started" 作为项目的名称,但请务必将本教程中所有相应使用"loopback-getting-started"的地方修改为你自己的项目名称。

生成框架应用包含以下操作:

  1. 初始化项目的目录结构
  2. 创建默认的JSON文件
  3. 创建默认的JavaScript文件
  4. 下载并安装所有的Node依赖模块 (就好比你手工执行 npm install).

当框架应用创建完成后,应用生成器(application generator)将会显示一些建议的步骤帮助你运行这个框架应用

Next steps:
  Change directory to your app
    $ cd loopback-getting-started
  Create a model in your app
    $ slc loopback:model
  Optional: Enable StrongOps monitoring
    $ slc strongops
  Run the app
    $ slc run .

创建数据模型

现在我们将要创建一个CoffeeShop的数据模型,完成之后我们将获得一组完整的REST API。

首先进入项目目录,然后使用LoopBack model generator:

$ cd loopback-getting-started
$ slc loopback:model

模型生成器(model generator)会提示你所需的数据模型名字。在这里,我们输入 CoffeeShop:

[?] Enter the model name: CoffeeShop

然后,模型生成器(model generator)会要求你输入连接数据模型的数据源。

到目前为止,我们只有一个默认的内存数据源(in-memory data source),按回车选择。

...
[?] Select the data-source to attach CoffeeShop to: (Use arrow keys)
❯ db (memory)

模型生成器(model generator)会提示你输入数据模型的base class。由于我们的CoffeeShop模型需要有存储功能,因此我们选择PersistedModel作为CoffeeShop的base class。

[?] Select model's base class: (Use arrow keys)
  Model 
❯ PersistedModel 
  ACL 
  AccessToken 
  Application 
  Change 
  Checkpoint 

所有需要连接至数据源(例如数据库)的模型都继承自PersistedModel。模型间的继承关系请参考 LoopBack 核心概念

LoopBack可以根据你的数据模型自动生成REST API。在此模型生成器(model generator)会询问你是否需要生成REST API,请输入回车继续。

[?] Expose CoffeeShop via the REST API? (Y/n) Y

默认情况下LoopBack的REST API 的地址会自动使用模型名字的复数状态(比如 CoffeeShop 会绑定到 /CoffeeShops 上)。当然你也可以绑定到其名字上。在本教程中,我们使用默认形式,所以请输入回车继续。

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

每个数据模型都会有属性,所以我们在这一步中定义一个CoffeeShop的数据属性叫做"name"用于描述CoffeeShop的名称。

先输入属性名称"name",然后选择数据类型为“string",由于默认的数据类型为"string", 所以你可以直接输入回车继续。

Let's add some CoffeeShop properties now.
Enter an empty property name when done.
[?] Property name: name
   invoke   loopback:property
[?] Property type: (Use arrow keys)
❯ string
  number
  boolean
  object
  array
  date
  buffer
  geopoint
  (other)

每个属性都可以选择是否是必填项,在此我们输入 y 让 "name" 属性成为必填项。

[?] Required? (y/N)

最后当系统提示输入下一个属性时,我们输入回车表示结束属性定义

了解项目结构

aa

Icon

下面描述使用slc loopback命令创建的项目的结构。LoopBack并不要求你一定要按照下面的结构来,但是如果你不使用这个结构的话,你就不能使用slc loopback 命令来修改或扩展你的应用。

LoopBack项目结构有3个子目录:

  • server - 放置Node应用的脚本和配置文件。
  • client - 客户端脚本,HTML,CSS文件。
  • common - client和server的公共文件。其中models子目录包含所有的模型JSON和js文件。
Icon

所有你模型的JSON和JS文件都放在/common/models 文件夹下。

文件或文件夹描述如果进入到代码
根目录
package.json

标准的npm package文件。详见package.json

另外,还包含一个README.md 文件和node_modules 文件夹。

N/A
/server 文件夹 - Node应用的文件
server.js应用的主文件 N/A
config.json应用配置文件。详见 config.json.app.get('setting-name')
datasources.json 数据源配置文件。详见 datasources.json。例子,见 Create new data sourceapp.datasources['datasource-name']
model-config.json模型配置文件。详见 model-config.json。更多信息,见Connecting models to data sources.N/A
middleware.json中间件定义文件。详见 Defining middleware.N/A
/boot directory在此添加脚本用来初始化应用。详见 boot scripts.脚本会按照字母排序顺序执行。
/client 文件夹 -客户端应用文件
README.mdLoopBack生成一个空的 README 文件。N/A
Other添加你的 HTML, CSS, 客户端JS文件。 
/common 文件夹 - 客户端和服务端共享的文件在此
/models directory

自定义模型文件:

  • Model definition JSON files, 按照 model-name.json约定命名;例如customer.json。
  • 自定义模型脚本按照 model-name.json约定命名;例如customer.js

更多信息,见 Model definition JSON fileCustomizing models.

Unable to render {include} The included page could not be found.

Node:
myModel = app.models.myModelName

如欲了解更多的关于项目目录结构的情况请参考 项目结构参考

运行应用程序

输入 slc run 就可以运行程序了

$ slc run
INFO strong-agent API key not found, StrongOps dashboard reporting disabled.
Generate configuration with:
    npm install -g strongloop
    slc strongops
See http://docs.strongloop.com/strong-agent for more information.
supervisor running without clustering (unsupervised)
Browse your REST API at http://0.0.0.0:3000/explorer
Web server listening at: http://0.0.0.0:3000/
Icon

使用 slc (StrongLoop Controller) 启动服务器程序和直接使用 node 命令启动服务器程序在本质上是一样的。但是通过 slc 启动会带个你额外的一些功能,比如多进程集群,Logging, 运行状态监测等。请参考 Operating Node applicationsGetting Started 了解更多关于slc命令的用法。

If you want to run the server in a multiprocess cluster, use this command: 

如果你需要运行多个进程的集群,使用以下命令

$ slc run --cluster cpus

在浏览器中输入 http://0.0.0.0:3000/ (在某些系统中可能要使用 http://localhost:3000).  你会看到默认的服务器相应会是一个JSON, 这个JSON包含了目前的服务器状态。例如:

{"started":"2014-11-20T21:59:47.155Z","uptime":42.054}

再在浏览器中输入 http://0.0.0.0:3000/explorer 或者 http://localhost:3000/explorer.  你就能看到StrongLoop的API浏览器

经过以上的简单步骤,我们创建了CoffeeShop模型,并为其定义了一个属性,并且将这个模型的REST API绑定到了HTTP上

Next: 在 使用API浏览器 中,你将会了解更多我们刚刚创建的REST API,并且练习一些使用方法。

Attachments: