public ActionResult <ValidarGetResponseModel> Validate([FromBody] ValidarGetRequestModel request)
        {
            if (request == null || request.Content == null)
            {
                //TODO Criar um lançamento de exception 400 como o de baixo
            }

            Result result;

            try
            {
                result = new Processor(ruleSettings).Validate(request.Content, request.Supressions.ToSupressions());
            }
            catch (InvalidOpenApiDocumentException e)
            {
                //TODO Criar este lançamento de exception
                //ValidationException.Throw("rest-400");

                //TODO precisa evoluir o "error-code" para poder passar parâmetros {0}
                //Isto é tático
                Response.StatusCode = StatusCodes.Status400BadRequest;
                result = new Result
                {
                    ResultItens = new List <ResultItem>
                    {
                        new ResultItem
                        {
                            Description = "O contrato não é um Open API Specification válido.",
                            Details     = e.Message,
                            Rule        = "GenericError",
                            Severity    = Severity.Error
                        }
                    }
                };
            }

            if (HttpContext.Request.Headers.ContainsKey("Accept") &&
                HttpContext.Request.Headers["Accept"] == "text/plain")
            {
                return(Content(result.ToText()));
            }
            else
            {
                return(result.ToValidarResponseGetModel());
            }
        }
Beispiel #2
0
        public ActionResult <ValidarGetResponseModel> Validate([FromBody] ValidarGetRequestModel request)
        {
            if (request == null || request.Content == null)
            {
                //TODO Criar um lançamento de result com erro
            }

            Result result = new Processor(ruleSettings).Validate(request.Content, request.Supressions.ToSupressions());

            if (HttpContext.Request.Headers.ContainsKey("Accept") &&
                HttpContext.Request.Headers["Accept"] == "text/plain")
            {
                return(Content(result.ToText()));
            }
            else
            {
                return(result.ToValidarResponseGetModel());
            }
        }