рдирдорд╕реНрдХрд╛рд░ AWS рдЯреАрдо,
рдЖрдкрдХреЗ рд▓реИрдВрдмрдбрд╛рдПрдВрдЯреНрд░реАрдкреНрд╡рд╛рдЗрдВрдЯ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдХрд┐ рд▓реЛрдХрд▓ рдПрдВрдиреНрдЯреНрд░реАрдкреНрд╡рд╛рдЗрдВрдЯ рдкрд░ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ CustomAttribute:
`` `
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ CustomAttribute: ActionFilterAttribute
{
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдУрд╡рд░рд░рд╛рдЗрдб рд╢реВрдиреНрдп рд╢реВрдиреНрдп OnActionExecuted (ActionExecutedContext рдХреНрд░рд┐рдпрд╛ExecutedContext)
{
HttpResponse рдкреНрд░рддрд┐рд╕рд╛рдж = actionExecutedContext.HttpContext.Response;
рд▓реИрдВрдмрдбреЙрд▓реНрдЧрд░.рд▓реЛрдЧ ("рдЯреЗрд╕реНрдЯ" + рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛.рд╕реИрдЯрд╕рдХреЛрдб + "" + (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛! = Null) .рдЯреНрд░реЛрд╕реНрдЯреНрд░рд┐рдВрдЧ () + "" +
response.IsSuccessStatusCode ()ред ToString () + "+" (actionExecutedContext.Result! = null) .ToString ());
base.OnActionExecuted(actionExecutedContext);
}
}
`` `
рдпрджрд┐ рдЖрдк рдЗрд╕ CustomAttribute with LocalEntry рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ StatusCode рд╕реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк AWS рдкрд░ рдЗрд╕реЗ рдбреАрдмрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреНрд░рдо рдореЗрдВ рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ 0 рдХрд╛рд░рдг рдорд┐рд▓реЗрдЧрд╛ред рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреА рдЬрд╛рдВрдЪ рдУрдбрдЯрд╛ рдЯреАрдо рдХреЗ рд╕рд╛рде рдпрд╣рд╛рдВ рдХрд░рддрд╛ рд╣реВрдВ: рдУрдбрдЯрд╛ / рд╡реЗрдмрдПрдкреА # 1227
рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдореИрдВ рдЬрд╛рдВрдЪ рдЬрд╛рд░реА рд░рдЦреВрдВрдЧрд╛ред
рдЗрд╕ рд╡рд┐рд╖рдп рдореЗрдВ рдХреБрдЫ рд╕рдорд╛рдЪрд╛рд░?
@ рдиреЛрд░реНрдордЬ , рдореИрдВ рднреА рдЗрд╕ рдХрд╕реНрдЯрдо рдПрдХреНрд╢рди рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЗрд╕реА рддрд░рд╣ рдХрд╛ рдореБрджреНрджрд╛
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters;
namespace Infrastructure
{
public class ValidateModelAttribute : ActionFilterAttribute, IOrderedFilter
{
public ValidateModelAttribute()
{
Order = 100;
}
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
context.Result = new BadRequestObjectResult(context.ModelState);
}
}
}
}
рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рддреНрдпрд╛рдкрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдВрдмрдбрд╛ рдореЗрдВ рддреИрдирд╛рдд рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдмрдЧ рдЕрднреА рднреА рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЗрд╕рдХреА рдорд░рдореНрдордд рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдпреЛрдЬрдирд╛ рд╣реИ?
@normj рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛?
рдЗрд╕ рдкрд░ рдирд╡реАрдирддрдо рдХреНрдпрд╛ рд╣реИ? рдЕрдВрддрд┐рдо рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдореЗрдВ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд╣реЛ рдЧрдпрд╛ рд╣реИред @ NGL321 , рдХреНрдпрд╛ рдЖрдк рдЕрдкрдбреЗрдЯ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЕрд░реЗ @ рдЬреБрд▓реАрдЧрд▓рдЧрди ,
рд▓реЗрдмрд▓ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдФрд░ рдЬрд╛рдПрдВред рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЗрд╕ рдмрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рд╕рдордп рдФрд░ рдЕрдзрд┐рдХ рдареЛрд╕ рд╕рдордп рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рддрддреНрдХрд╛рд▓ рддрдп рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ рдпрд╣ рдЕрд╡рд░реБрджреНрдз рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ рдФрд░ рд╣рдо рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рдЗрд╕рдХреА рд╕рдореАрдХреНрд╖рд╛ рдХрд░реЗрдВрдЧреЗред рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдЗрд╕реЗ рдЯрдХрд░рд╛рддреЗ рд░рд╣реЗрдВ, рдФрд░ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рдП (рдЬрд┐рддрдиреЗ рдЕрдзрд┐рдХ рд▓реЛрдЧ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдЙрддрдиреА рд╣реА рдЕрдзрд┐рдХ рд╣рдо рдЗрд╕реЗ рдЕрдкрдиреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдУрдВ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) ump
ЁЯШ╕ ЁЯШ╕
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@normj рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдпреЛрдЬрдирд╛?