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

1 つには、 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 に答える