# Backend & Custom Logic

- [Controllers](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/controllers.md): An Umbraco API Controller is an ASP.NET WebApi controller that is used for creating REST services.
- [Routing](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing.md): All about Umbraco's routing pipeline & the types of Controllers used in Umbraco
- [Controller & Action Selection](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/controller-selection.md)
- [Custom MVC Controllers (Umbraco Route Hijacking)](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/custom-controllers.md): Use a custom MVC controller to handle and control incoming requests for content pages based on a specific Document Type, also called Route Hijacking.
- [Custom Middleware](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/custom-middleware.md): Customizing the ASP.NET middleware pipeline in Umbraco
- [Custom MVC Routes](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/custom-routes.md): Setting up your own controllers and routes that exist alongside the Umbraco pipeline.
- [Execute Request](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/execute-request.md)
- [Request Pipeline](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/inbound-pipeline.md)
- [Routing in Umbraco](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/request-pipeline.md): What the Umbraco Request Pipeline is
- [FindPublishedContentAndTemplate()](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/request-pipeline/find-publishedcontent-and-template.md)
- [IContentFinder](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/request-pipeline/icontentfinder.md): Information about creating your own content finders
- [Inbound Request Pipeline](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/request-pipeline/inbound-pipeline.md): How the Umbraco inbound request pipeline works
- [Outbound Request Pipeline](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/request-pipeline/outbound-pipeline.md): Learn how the Umbraco outbound request pipeline works.
- [Published Content Request Preparation](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/request-pipeline/published-content-request-preparation.md): How Umbraco prepares content requests
- [Special Property Type Aliases for Routing](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/routing-properties.md): Describes special property type aliases which can be used to customise routing
- [Surface Controllers](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/surface-controllers.md): Information about Surface Controllers in Umbraco
- [Surface Controller Actions](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/surface-controllers/surface-controllers-actions.md): Information about Surface Controller Actions Result Helpers in Umbraco
- [Umbraco API Controllers](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/umbraco-api-controllers.md): A guide to implementing APIs in Umbraco projects
- [Porting Old Umbraco API Controllers](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/umbraco-api-controllers/porting-old-umbraco-apis.md): Tips to porting over API controllers from Umbraco 13 and below
- [URL Rewrites in Umbraco](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/iisrewriterules.md)
- [URL Redirect Management](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/routing/url-tracking.md): URL redirect management in Umbraco
- [Subscribing to Notifications](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/subscribing-to-notifications.md): Subscribing to notifications allows you to listen to specific events and run custom code in response.
- [Inversion of Control / Dependency Injection](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/using-ioc.md): Inversion of Control/Dependency Injection in Umbraco
- [Service APIs](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/umbraco-services.md)
- [Creating Forms](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/creating-forms.md): Information on creating forms in Umbraco
- [Source Control](https://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic/source-control.md): In this article you can learn more about how to effectively source control your Umbraco site.


---

# 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://docs.umbraco.com/umbraco-cms/18.latest/develop-with-umbraco/application-code/backend-and-custom-logic.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.
