Endpoints

The purpose of the endpoints is to take some data provided by the data sources, represent it in some way (HTML, JSON, XML etc.), and return as the response. They also handle access control and caching. You can manage them (create, edit, and delete) from the backend using the Development/Endpoints section:

../_images/122.png

Please note, that the default ASP.NET routing still works and it is executed before any endpoint.

Each endpoint has name, URL template, position, and other fields:

../_images/214.png

General/Name

Name is used only in the endpoint list to identify endpoints.

General/URL template

URL template is used by the implementation of the IEndpointResolver interface to select the endpoint which should process current request (see below).

General/Position

Position is important, because the endpoint resolver checks the endpoints one by one, and it will return the first matching endpoint from the list, sorted by position.

../_images/310.png

Access/Disallow anonymous

This checkbox allows you to specify whether a user must be authenticated in order to be able to get the response from this endpoint. Once the checkbox is checked, the Required permissions list will appear so you can specify which permissions the user must have.

Access/Sign in URL

This URL will be used to redirect user if he must be authenticated or if a required permission is missing.

../_images/43.png

Request processing/Request processor C# class name

It allows you to specify, which C# class (implementation of the IRequestProcessor interface) will process the requests (convert request data and data provided by the data sources to the response). It is very important, because you can write your own implementations of this interface. You can return HTML (using or not using views), JSON, files, plain text, redirects, or any other content. There is the only one built-in request processor: the DefaultRequestProcessor one. It returns views the same way as ASP.NET controllers do (you can specify the view name using the parameter).

Please note that the endpoints process requests using the request processors, they do not (and should not) provide data for the responses. In other words, they take prepared data and represent it in some way (HTML, JSON etc.). Data is provided to the endpoints by data sources. Each endpoint can have different data sources at the same time.

../_images/52.png

Response caching/Response cache C# class name

It allows you to specify, which C# class (implementation of the IResponseCache is used to cache the endpoint response. There are several built-in implementations of this interface, but you can write your own ones.