/// <summary> /// Defines a filter for DefaultResponseType that the controller action should have an attribute of type <typeparamref name="TAttribute"/> in order to be added to the api description. /// </summary> /// <typeparam name="TAttribute">Type of the attribute, with a constraint on type Attribute</typeparam> /// <param name="defaultResponseType">The original default response type.</param> /// <returns>The original default response type with an added filter.</returns> public static DefaultResponseType WhenHasAttribute <TAttribute>(this DefaultResponseType defaultResponseType) where TAttribute : Attribute { defaultResponseType.When(apiDesc => apiDesc.ActionDescriptor.HasCustomControllerActionAttribute <TAttribute>()); return(defaultResponseType); }
/// <summary> /// Specifies that the default response type produces a specific mediatype and optional outputFormatter. /// </summary> /// <param name="defaultResponseType">The original default response type.</param> /// <param name="mediaType">The media type the api description produces for this specific response type.</param> /// <param name="outputFormatter">The output formatter to be used for this specific response type.</param> /// <returns>The original default response type with an added mediatype and outputformatter combination.</returns> public static DefaultResponseType Produces(this DefaultResponseType defaultResponseType, string mediaType, IOutputFormatter outputFormatter = null) { defaultResponseType.ResponseType.ApiResponseFormats.Add(new ApiResponseFormat() { MediaType = mediaType, Formatter = outputFormatter }); return(defaultResponseType); }
public DefaultResponseType AddDefaultResponseType(ApiResponseType responseType) { var defaultResponseType = new DefaultResponseType() { ResponseType = responseType }; DefaultResponseTypes.Add(defaultResponseType); return(defaultResponseType); }
/// <summary> /// Defines a filter for DefaultResponseType that a route parameter has to be present in order to be added to the api description. /// </summary> /// <param name="defaultResponseType">The original default response type.</param> /// <param name="paramNameEquals">The name of the route parameter should equal the provided value. Comparison is case insensitive. Cannot be used in combination with <paramref name="paramNameContains"/>.</param> /// <param name="paramNameContains">The name of the route parameter should contain the provided value. Comparison is case insensitive. Cannot be used in combination with <paramref name="paramNameEquals"/>.</param> /// <returns>The original default response type with an added filter.</returns> /// <exception cref="ArgumentException">Thrown when both the <paramref name="paramNameEquals"/> and <paramref name="paramNameContains"/> are provided.</exception> public static DefaultResponseType WhenHasRouteParameter(this DefaultResponseType defaultResponseType, string paramNameEquals = null, string paramNameContains = null) { if (paramNameContains != null && paramNameEquals != null) { throw new ArgumentException($"Parameters {nameof(paramNameContains)} and {nameof(paramNameEquals)} cannot be specified both."); } if (paramNameEquals != null) { defaultResponseType.When(apiDesc => apiDesc.ParameterDescriptions.Any(x => x.Source.Id == "Path" && x.Name.Equals(paramNameEquals, StringComparison.OrdinalIgnoreCase))); } else if (paramNameContains != null) { defaultResponseType.When(apiDesc => apiDesc.ParameterDescriptions.Any(x => x.Source.Id == "Path" && x.Name.Contains(paramNameEquals, StringComparison.OrdinalIgnoreCase))); } else { defaultResponseType.When(apiDesc => apiDesc.ParameterDescriptions.Any(x => x.Source.Id == "Path")); } return(defaultResponseType); }
/// <summary> /// Defines a filter for DefaultResponseType that the api method should equal the provided value in order to be added to the api description. /// </summary> /// <param name="defaultResponseType">The original default response type</param> /// <param name="httpMethod">The HTTP method should equal the provided value.</param> /// <returns>The original default response type with an added filter.</returns> public static DefaultResponseType ToMethod(this DefaultResponseType defaultResponseType, string httpMethod) { defaultResponseType.When(apiDesc => apiDesc.HttpMethod.Equals(httpMethod, StringComparison.OrdinalIgnoreCase)); return(defaultResponseType); }
/// <summary> /// Defines a filter for DefaultResponseType that the api method should equal DELETE in order to be added to the api description. /// </summary> /// <param name="defaultResponseType">The original default response type.</param> /// <returns>The original default response type with an added filter.</returns> public static DefaultResponseType ToDelete(this DefaultResponseType defaultResponseType) { defaultResponseType.ToMethod("delete"); return(defaultResponseType); }
/// <summary> /// Defines a filter for DefaultResponseType that the api method should equal PUT in order to be added to the api description. /// </summary> /// <param name="defaultResponseType">The original default response type.</param> /// <returns>The original default response type with an added filter.</returns> public static DefaultResponseType ToPut(this DefaultResponseType defaultResponseType) { defaultResponseType.ToMethod("put"); return(defaultResponseType); }
/// <summary> /// Specifies that the default response type should be added to the api description, even if that description does not have the ProducesDefaultResponseTypes attribute. /// </summary> /// <param name="defaultResponseType">The original default response type.</param> /// <returns>The original default response type with the property AddToDescriptionsWithoutDefaultAttribute set to true.</returns> public static DefaultResponseType EvenWithoutDefaultAttribute(this DefaultResponseType defaultResponseType) { defaultResponseType.AddToDescriptionsWithoutDefaultAttribute = true; return(defaultResponseType); }
/// <summary> /// Defines a filter with a specific delegate function. If the <paramref name="filter"/> function returns true, the response type will be added to the api description. /// </summary> /// <param name="defaultResponseType">The original default response type.</param> /// <param name="filter">The specific delegate function that has to return true in order to be added to the api description.</param> /// <returns>The original default response type with an added filter.</returns> public static DefaultResponseType When(this DefaultResponseType defaultResponseType, Func <ApiDescription, bool> filter) { defaultResponseType.Filters.Add(filter); return(defaultResponseType); }