Important: If you already have a back-end schema (like a database), create models based on it using LoopBack’s discovery feature. See Discovering models from relational databases.
The easiest way to create a new model is with the model generator.
With LoopBack tools:
$ lb model <model-name>
With IBM API Connect developer toolkit:
$ apic create --type model --name <model-name>
When creating a new model, the generator will prompt you for the properties in the model. Subsequently, you can add more properties to it using the property generator.
When you create a model (for example, called “myModel”), the tool:
/common/models/myModel.json, the model definition JSON file.
/common/models/myModel.js, where you can extend the model programmatically. For example to add remote methods. See Adding application logic for more information.
- Adds an entry to
/server/model-config.jsonfor the model, specifying the model’s data source. See model-config.json for more information.
Once you’ve created your model, you may want to read:
Use the LoopBack model generator to create a new model. In your application root directory, enter the command (for example, to create a “books” model):
$ lb model book
Or, using IBM API Connect developer toolkit:
$ apic create --type model book
Then the tool will prompt you to:
Choose the data source to which the model will connect. By default, there will be only the in-memory data source (named “db”). When you create additional data sources with the data source generator, they will be listed as options.
Choose the model’s base class, from a list of built-in models classes and existing custom models in the application.
In general, use
PersistedModel as the base model when you want to store your data in a database using a connector such as MySQL or MongoDB.
Model as the base for models that don’t have CRUD semantics, for example, using connectors such as SOAP and REST.
- Choose whether to expose the model over REST; the default is yes.
- Enter a custom plural form; the default is to use standard plural (for example, “books”).
- Add properties to the model; for each property it will prompt you for:
- Name of the property
- Type of the property; see LoopBack types.
This sets the
typeproperty in the model definition JSON file.
- Whether the property is required. This sets the
requiredproperty in the model definition JSON file.
After you create a model, you can add more properties with the property generator.
$ lb property
The tool will prompt you to choose the model to which you want to add the property, along with the other property settings (as before). Then, it will modify the model definition JSON file accordingly.
Adding default values
One way to set a default value for a property is to set the “default” property in the models JSON file. You can also set the defaultFn property to set the default value to a globally-unique identifer (GUID) or the timestamp.
For more information, see the model JSON file General property properties section.