Esempio n. 1
0
        public IActionResult Post([FromBody] ValidateSchemaModel model)
        {
            var isValid = _jsonValidator.ValidateJson(model.Schema);

            if (!isValid)
            {
                var errorMessage = $"The given schema {model.Schema} is not a valid Json";
                _logger.Error(errorMessage);
                return(BadRequest(new[] { errorMessage }));
            }

            _logger.Information($"Calling Url: {model.Site} to get JSon data");
            var restApiResponse        = _restApiClient.GetDataFromUrl(model.Site);
            var schemaValidationResult = _jsonValidator.ValidateJsonAgainstSchema(model.Schema, restApiResponse.Data);

            var responseContent = JsonConvert.SerializeObject(schemaValidationResult);

            if (schemaValidationResult.SchemaValidationErrors.Any())
            {
                return(new ContentResult()
                {
                    StatusCode = 409,
                    Content = responseContent
                });
            }

            _logger.Information($"Validation Result: \n {responseContent}");
            return(Ok(schemaValidationResult));
        }