# Simply OpenAPI Controllers

@simply-openapi/controllers is a library that produces robust, validated web request controllers using the OpenAPI specification as its source of truth. These specifications can take the form of decorators on your controllers, be provided externally, or a mix of both.

By deriving routers from the spec itself, this library guarentees that the specifications in the OpenAPI are accurate; requests not matching the spec are rejected automatically, and responses can be optionally validated before being sent out.

@simply-openapi/controllers restricts itself to solving problems in the controller / request handling domain, and no other. Its integration point is express routers, allowing it to be used without heavy frameworks, or integrated into the framework of your choice.

* [The benefits of generating routers from OpenAPI](/simply-openapi-controllers/forward-why-use-openapi.md)
* [Tutorial: Create routers and OpenAPI spec using decorators](/simply-openapi-controllers/dev/tutorial-automatic-openapi-controllers.md)
* [Tutorial: Create routers from existing OpenAPI spec](/simply-openapi-controllers/dev/tutorial-bound-openapi-controllers.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://simply-openapi.gitbook.io/simply-openapi-controllers/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
