Page Contents

LoopBack 4 introduces some new concepts that are important to understand:

  • Application: The central class for setting up all of your module’s components, controllers, servers and bindings. The Application class extends Context and provides the controls for starting and stopping its associated servers.

  • Server: An implementation for inbound transports/protocols such as REST (http, https), gRPC (http2) and graphQL (http, https). It typically listens on a specific endpoint (protocol/host/port), handles incoming requests, and then returns appropriate responses.

  • Context: An abstraction of states and dependencies in your application that LoopBack uses to manage everything. It’s a global registry for everything in your app (configurations, state, dependencies, classes and so on).

  • Dependency Injection: The technique used to separate the construction of dependencies of a class or function from its behavior to keep the code loosely coupled.

  • Controller: A class that implements operations defined by the application’s REST API. It implements an application’s business logic and acts as a bridge between the HTTP/REST API and domain/database models. A Controller operates only on processed input and abstractions of backend services / databases.

  • Route: The mapping between your API specification and an Operation. It tells LoopBack which Operation to invoke() when given an HTTP request.

  • Sequence: A stateless grouping of Actions that control how a Server responds to requests.

  • Model: The definition of an object in respect to the datasource juggler. The @loopback/repository module provides special decorators for adding metadata to TypeScript/JavaScript classes to use them with the legacy implementation of DataSource Juggler. In addition, @loopback/repository-json-schema module uses the decorators’ metadata to build a matching JSON Schema.

  • Repository: A type of service that represents a collection of data within a DataSource.

  • Decorator: The pattern used to annotate or modify your class declarations and their members with metadata.

  • Component: A package that bundles one or more Loopback extensions.