public void SetRequestExampleForOperation( OpenApiOperation operation, object example, IContractResolver contractResolver = null, JsonConverter jsonConverter = null) { if (example == null) { return; } if (operation.RequestBody == null || operation.RequestBody.Content == null) { return; } var serializerSettings = serializerSettingsDuplicator.SerializerSettings(contractResolver, jsonConverter); var jsonExample = new OpenApiRawString(jsonFormatter.FormatJson(example, serializerSettings)); OpenApiString xmlExample = null; if (operation.RequestBody.Content.Keys.Any(k => k.Contains("xml"))) { xmlExample = new OpenApiString(example.XmlSerialize(mvcOutputFormatter)); } foreach (var content in operation.RequestBody.Content) { if (content.Key.Contains("xml")) { content.Value.Example = xmlExample; } else { content.Value.Example = jsonExample; } } }
public void SetResponseExampleForStatusCode( OpenApiOperation operation, int statusCode, object example, IContractResolver contractResolver = null, JsonConverter jsonConverter = null) { if (example == null) { return; } var response = operation.Responses.FirstOrDefault(r => r.Key == statusCode.ToString()); if (response.Equals(default(KeyValuePair <string, OpenApiResponse>)) == false && response.Value != null) { var serializerSettings = serializerSettingsDuplicator.SerializerSettings(contractResolver, jsonConverter); var jsonExample = new OpenApiRawString(jsonFormatter.FormatJson(example, serializerSettings)); OpenApiString xmlExample = null; if (response.Value.Content.Keys.Any(k => k.Contains("xml"))) { xmlExample = new OpenApiString(example.XmlSerialize(mvcOutputFormatter)); } foreach (var content in response.Value.Content) { if (content.Key.Contains("xml")) { content.Value.Example = xmlExample; } else { content.Value.Example = jsonExample; } } } }
/// <summary> /// Converts between an <see cref="OpenApiRawString"/> and a /// <see cref="OpenApiString"/> /// </summary> /// <param name="value"><see cref="OpenApiRawString"/> to convert</param> /// <returns>New <see cref="OpenApiString"/></returns> public static OpenApiString ToOpenApiString(OpenApiRawString value) => new OpenApiString(value.Value);