in src/Microsoft.Azure.WebJobs.Extensions.OpenApi.Core/Extensions/OpenApiResponseWithBodyAttributeExtensions.cs [28:61]
public static OpenApiResponse ToOpenApiResponse(this OpenApiResponseWithBodyAttribute attribute, NamingStrategy namingStrategy = null, VisitorCollection collection = null, OpenApiVersionType version = OpenApiVersionType.V2)
{
attribute.ThrowIfNullOrDefault();
var description = string.IsNullOrWhiteSpace(attribute.Description)
? $"Payload of {attribute.BodyType.GetOpenApiDescription()}"
: attribute.Description;
var mediaType = attribute.ToOpenApiMediaType<OpenApiResponseWithBodyAttribute>(namingStrategy, collection, version);
var content = new Dictionary<string, OpenApiMediaType>()
{
{ attribute.ContentType, mediaType }
};
var response = new OpenApiResponse()
{
Description = description,
Content = content,
};
if (attribute.CustomHeaderType.HasInterface<IOpenApiCustomResponseHeader>())
{
var header = Activator.CreateInstance(attribute.CustomHeaderType) as IOpenApiCustomResponseHeader;
response.Headers = header.Headers;
}
if (!string.IsNullOrWhiteSpace(attribute.Summary))
{
var summary = new OpenApiString(attribute.Summary);
response.Extensions.Add("x-ms-summary", summary);
}
return response;
}