Примечание. Я новичок в C# и .net.
Я работаю над записью журналов и показателей для API и конкретных операций. Для этого я планирую использовать промежуточное программное обеспечение. Я реализовал базовую версию промежуточного программного обеспечения вместе с настраиваемым атрибутом, и она отлично работает*** с такими методами API, как PostUsers, в приведенном ниже фрагменте кода.
Код: Выделить всё
namespace MyApp.Namespace1
{
[ApiController]
public class Controller : ControllerBase
{
[HttpPost]
[Route( "users" )]
[OperationName( "PostUsers" )] // Custom attribute to send the operation name to middleware
public async Task PostUsers( [FromBody] UsersRequest request )
{
try
{
...
}
catch ( Exception ex )
{
...
// This error (ex.Message, etc.) should be available in middleware
}
}
}
}
Код: Выделить всё
internal class UsersProvider
{
[OperationName( "HandleUsers" )]
private async Task HandleUsers()
{
}
}
public class Storage
{
[OperationName( "CreateStorage" )]
private static void CreateStorage( )
{
}
}
***: Currently, I'm passing the required details from the controller to the middleware by using HttpContext.Items. Is there any better way of doing this? My goal is to offload all the logs and metric-related logic to middleware and keep the controller/target method as clean as possible
Источник: https://stackoverflow.com/questions/781 ... beyond-api