The past few weeks have been challenging for many of us. While this pandemic situation affected our lives in different ways, we hope you all stay safe.

In Q1, we continued to make good progress in the following areas:

Let’s take a closer look.

Migration Guide

Building the migration guide is one of the key focuses for us this year. We made good progress in completing the migration guide. Please check out our migration guide. LoopBack 3 is currently in maintenance LTS. Read this blog to find out what it means and how it affects you.

In LB3, it was possible to use mixins to enhance a model with a new property, a custom method, or a custom remote method. In LB4, this can be accomplished by using a mixin class factory function against model, repository, or controller classes. We added a Migrating model mixins page to demonstrate how to accomplish this.

In LB3, Operation hooks are useful tools that are triggered by all methods that execute a particular high-level CRUD operation. However, LB4 hasn’t supported this feature yet. To help LB3 users to continue using the feature, we provide a workaround and explain how they can migrate LB3 operation hooks to LB4 repositories in page Migrating operation hooks.

LB3 has the built-in User/AccessToken model based authentication. In LB4, we provide a more flexible authentication system. We explain how LB3 users can migrate it to LB4 with handy LB4 CLI tools. The content can be found in page Migrating built-in authentication.

In addition, we added the LB3 features not in-plan documentation page to clarify which LB3 features are not supported in LB4 or the workarounds for those features if users would like to continue using them in LB4.

Migration Tooling and Examples

Besides documentation, we migrated the LoopBack 3 access control example to LoopBack 4. In the lb3-application example, we added instructions on how to move the middleware from the LoopBack 3 application to a common location where both the LB3 and LB4 applications can use it.

For tooling that helps your migration process easier, the lb4 import-lb3-models command now supports migrating models inheriting from all other models, including LoopBack 3 built-in models.

From Model Definitions to REST APIs

One of the frequent inputs we got from users is that they would like to see fewer steps from creating the models to having runnable endpoints. We now have the rest-crud package, the app booter, and the CLI command. You can see how to create a simple LoopBack 4 app with the lb4 rest-crud CLI command.

To glue these pieces together and helper users to understand the feature, we added a page Creating CRUD REST APIs. You can also run this CRUD REST example.

Integrate with IBM API Connect

Earlier, we identified the work items required for the integration with IBM API Connect. When importing an OpenAPI spec generated by a LoopBack 4 application, there is additional metadata needs to be added. Instead of having our users to modify the OpenAPI spec manually, we introduced an API Connect OpenAPI enhancer to inject the x-ibm-configuration and other required attributes in the OpenAPI spec.

Additionally, we extracted and translated the messages for our CLI tooling.

Newly Added Examples

We continue to add examples which demonstrate commonly used scenarios. With the growing number of examples, we also categorized the Example list. Here are the newly added examples:

If there’s any example you’d like to see, feel free to open an issue in the loopback-next repo. Better yet, submit a PR and contribute!

Newly Added Extensions

LoopBack 4 is designed to be extensible. We added three extensions in this quarter for various usages:

IBM Db2 for i Connector

The IBM Db2 for i connector was added to the connector list. You can now conveniently create a IBM Db2 for i datasource using our CLI. If you are starting a new project that connects to IBM Db2 for i, we recommend you to use this connector instead of loopback-connector-db2iseries connector. You can find more details in the Db2 for i connector page.

Enhancements in LoopBack core and OpenAPI areas

In this quarter, thanks to our community contributors, we had a number of important enhancements in the OpenAPI area. An OASEnhancerService was introduced which allows other enhancers to register and contribute OpenAPI specs into the application. This also provides the base for the API Connect OpenAPI enhancer mentioned above. On top of that, a few OpenAPI convenience decorators were added, for example, the @deprecated() decorator and the @tags(tagNames: string []) decorator for a class and method.

For the core of the framework, we have added the support hot-loading of controllers during application startup. Besides, the context and binding inspection APIs were improved with more options and information to print out their injections. More details can be found in the February milestone blog.

Rework of Shopping Example

The most noticeable changes for our shopping example is the newly added frontend. There was some rework on the authentication and authorization side to make the app working from end to end.

Shopping example web site

Refreshed Look for LoopBack Web Site

Last but not least, if you haven’t noticed already, our documentation site has a refreshed look. Don’t forget to check it out!

LoopBack documentation site

With increasing number of user testimonials, we created a separate page for it. Let us know if you would like to tell us about your LoopBack usage!

Previous Milestone Blogs

There are many more accomplishments that cannot be captured in this blog, make sure you check out our previously published monthly milestone blog posts in Q1 for more details:

What’s Next?

We have published a blog LoopBack - 2020 Goals and Focus about our plans this year. Here is a summary of the Q2 2020 roadmap:

  • finish migration guide for both general runtime and authentication & authorization
  • continue with API Connect and LoopBack integration
  • look into feature parity gaps that are highly requested by users

Call to Action

In 2020, we look forward to helping you and seeing you around! LoopBack’s success depends on you. We appreciate your continuous support and engagement to make LoopBack even better and meaningful for your API creation experience. Here’s how you can join us and help the project: