> For the complete documentation index, see [llms.txt](https://docs.code.store/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.code.store/getting-started/fundamentals/generation/middlewares.md).

# Middlewares

## Overview

code.store platform support [middleware](/getting-started/fundamentals/services/rest.md#middlewares) functions for [REST](/getting-started/fundamentals/services/rest.md#overview) endpoints. To avoid manual file creation allowed a command `cs generate:middleware`, which generate a template of middleware with handler method.

To generate middleware for your route just execute `cs generate:middleware` CLI command, select one of middleware type: request or response middleware type, specify name for your function and select route from the route list:

```
> cs generate:middleware

? Select position of middleware (Use arrow keys)
  response 
❯ request 

? Enter name of your middleware: permissions

? Select route to apply (Use arrow keys)

File ./demo_app/src/rest-middlewares/permissions.middleware.ts has been generated.

```

{% hint style="info" %}
Also, you can use flags:

**-p** for type specification (allowed: 'request' or 'response)

**-r** name of the route to apply middleware function

**-n** name of middleware function

For example, here a command from previous example: cs generate:middleware -p request -r hello -n permissions
{% endhint %}

After command execution will be generated file `permissions.middleware.ts` in `src/rest-middlewares` directory:

```
/**
 * This handler was generated by code.store CLI.
 *
 * Visit our documentation to learn more about the support of REST APIs in our SDK:
 * https://docs.code.store/getting-started/sdk/rest-apis
 *
 * You can also join our community at https://spectrum.chat/code-store if you have any
 * questions which are not covered by the documentation.
 *
 */

import { Handler } from 'codestore-utils';

const handler: Handler = async (event, context) => {
  // your code goes here
  return 'Hello, world!';
}

export default handler;
```

More information about handler method and his params can be found in [REST](/getting-started/fundamentals/services/rest.md#middlewares) section.
