@loopback/docs
Version:
Documentation files rendered at [https://loopback.io](https://loopback.io)
64 lines (48 loc) • 4.34 kB
Markdown
---
lang: en
title: 'API docs: rest.restapplication'
keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI
sidebar: lb4_sidebar
editurl: https://github.com/loopbackio/loopback-next/tree/master/packages/rest
permalink: /doc/en/lb4/apidocs.rest.restapplication.html
---
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) > [@loopback/rest](./rest.md) > [RestApplication](./rest.restapplication.md)
## RestApplication class
An implementation of the Application class that automatically provides an instance of a REST server. This application class is intended to be a single-server implementation. Any attempt to bind additional servers will throw an error.
<b>Signature:</b>
```typescript
export declare class RestApplication extends Application implements HttpServerLike
```
<b>Extends:</b> [Application](./core.application.md)
<b>Implements:</b> [HttpServerLike](./rest.httpserverlike.md)
## Constructors
| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)(parent)](./rest.restapplication._constructor_.md) | | Create a REST application with the given parent context |
| [(constructor)(config, parent)](./rest.restapplication._constructor__1.md) | | Create a REST application with the given configuration and parent context |
## Properties
| Property | Modifiers | Type | Description |
| --- | --- | --- | --- |
| [requestHandler](./rest.restapplication.requesthandler.md) | | [HttpRequestListener](./rest.httprequestlistener.md) | Handle incoming HTTP(S) request by invoking the corresponding Controller method via the configured Sequence. |
| [restServer](./rest.restapplication.restserver.md) | | [RestServer](./rest.restserver.md) | The main REST server instance providing REST API for this application. |
## Methods
| Method | Modifiers | Description |
| --- | --- | --- |
| [api(spec)](./rest.restapplication.api.md) | | Set the OpenAPI specification that defines the REST API schema for this application. All routes, parameter definitions and return types will be defined in this way.<!-- -->Note that this will override any routes defined via decorators at the controller level (this function takes precedent). |
| [basePath(path)](./rest.restapplication.basepath.md) | | Configure the <code>basePath</code> for the rest server |
| [bodyParser(bodyParserClass, address)](./rest.restapplication.bodyparser.md) | | Bind a body parser to the server context |
| [exportOpenApiSpec(outFile, log)](./rest.restapplication.exportopenapispec.md) | | Export the OpenAPI spec to the given json or yaml file |
| [expressMiddleware(key, middleware, options)](./rest.restapplication.expressmiddleware.md) | | Bind an Express middleware to this server context |
| [expressMiddleware(middlewareFactory, middlewareConfig, options)](./rest.restapplication.expressmiddleware_1.md) | | Bind an Express middleware to this server context |
| [handler(handlerFn)](./rest.restapplication.handler.md) | | |
| [middleware(middleware, options)](./rest.restapplication.middleware.md) | | Register a middleware function or provider class |
| [mountExpressRouter(basePath, router, spec)](./rest.restapplication.mountexpressrouter.md) | | Mount an Express router to expose additional REST endpoints handled via legacy Express-based stack. |
| [redirect(fromPath, toPathOrUrl, statusCode)](./rest.restapplication.redirect.md) | | Register a route redirecting callers to a different URL. |
| [route(verb, path, spec, controllerCtor, controllerFactory, methodName)](./rest.restapplication.route.md) | | Register a new Controller-based route. |
| [route(verb, path, spec, handler)](./rest.restapplication.route_1.md) | | Register a new route invoking a handler function. |
| [route(route)](./rest.restapplication.route_2.md) | | Register a new route. |
| [route(verb, path, spec, handler)](./rest.restapplication.route_3.md) | | Register a new route. |
| [sequence(sequence)](./rest.restapplication.sequence.md) | | |
| [server(server, name)](./rest.restapplication.server.md) | | |
| [static(path, rootDir, options)](./rest.restapplication.static.md) | | Mount static assets to the REST server. See https://expressjs.com/en/4x/api.html\#express.static |