8

我在 Web API 2 服务中使用WebApiContrib.Formatting.Jsonp ,以及用于 API 文档和测试的Swagger 。

当我通过Swagger触发任何 JSONP 方法时,我的服务在文件JsonpMediaTypeFormatter.cs的以下行中崩溃:

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

一方面,我不明白为什么Swagger不允许为 JSONP 请求指定回调名称。但更重要的是,我不希望服务因此而崩溃。

问题:

  • 我们如何在服务端处理此类错误?
  • 有没有办法让Swagger正确发送 JSONP 请求?(比如为所有 JSONP 请求预定义回调名称?)
4

1 回答 1

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
};
于 2016-08-30T07:43:27.507 回答