Good day,
Is there a way in the boilerplate to implement a custom filter for service functions similar to an "action filter in MVC" ?
I want to achieve the following:
When the service API function is called ( /api/services/app/someService/Get) I want to check a cached value and depending on the value I want to continue with the API call or throw an exception to the user.
Thanks in advance.
6 Answer(s)
-
0
Hi,
You can add it like below in your Startup.cs;
services.AddMvc(options => { options.Filters.Add(new YourCustomActionFilter()); });
Here is a sample action filter <a class="postlink" href="https://github.com/aspnetboilerplate/aspnetboilerplate/blob/dev/src/Abp.AspNetCore/AspNetCore/Mvc/Validation/AbpValidationActionFilter.cs">https://github.com/aspnetboilerplate/as ... nFilter.cs</a>.
-
0
Good day.
Thanks for your feedback. :)
I have done the following:
Created the filter within the Web.Core project
Resisted the the filter in the Web.Host startup project.I need to use the filter in the Application project and the Application project does not reference the Web.Host startup How can I achieve this?
Please advice ?
Thanks.
-
0
@dreamsmiths in AspNet Zero's ASP.NET Core versions, your app services will be considered as Controllers. So, when you add your filter to Filters list, it should be called automatically when you make a request to " /api/services/app/someService/Get". So, I couldn't understand why you need to use it in your app module.
-
0
Good day.
Thanks for your reply. That works for all app services endpoints. :D But I want the filter to execute on specific endpoint methods in my app services. Like below:
[TestFilter] public async Task<RegisterOutput> Register(RegisterInput input) { }
How can I achieve this? Thanks in advance.
-
0
Hi @dreamsmiths,
You can define your own attribute, add it to app service methods/app services you want and then you can check this attribute in your custom filter and act accordingly.
-
0
Thanks in a million for your help.