Обработка недопустимых запросов JSONP в веб-API

Я использую WebApiContrib.Formatting.Jsonp в службе Web API 2, а также Swagger для документации и тестирования API.

Когда я запускаю любой метод JSONP через Swagger, мой сервис падает в файле JsonpMediaTypeFormatter.cs в следующей строке:

throw new InvalidOperationException(Properties.Resources.NoCallback);
// NoCallback = The name 'NoCallback' does not exist in the current context

Во-первых, я не понимаю, почему Swagger не позволяет указывать имя обратного вызова для запросов JSONP. Но что более важно, я не хочу, чтобы сервис зависал из-за этого.

Вопросы:

  • Как мы можем справиться с такими ошибками на стороне сервиса?
  • Есть ли способ заставить Swagger правильно отправлять JSONP-запросы? (например, предварительно определив имя обратного вызова для всех запросов JSONP?)

1 ответ

PM> Install-Package Newtonsoft.Json.Schema

Или вы можете загрузить исходный код по адресу https://github.com/JamesNK/Newtonsoft.Json.Schema/releases

JSchema schema = JSchema.Parse(request.Schema);
JToken json = JToken.Parse(request.Json);

// validate json
IList<ValidationError> errors;
bool valid = json.IsValid(schema, out errors);

// return error messages and line info to the browser
return new ValidateResponse
{
    Valid = valid,
    Errors = errors
};
Другие вопросы по тегам