private static IEnumerable <SwaggerResponseAttribute> GetActionAttributes(ApiDescription apiDesc) { var controllerAttributes = apiDesc.ControllerAttributes().OfType <SwaggerResponseAttribute>(); var actionAttributes = apiDesc.ActionAttributes().OfType <SwaggerResponseAttribute>(); return(controllerAttributes.Union(actionAttributes)); }
/// <summary> /// Resolving api version constraint. /// </summary> /// <param name="docName">docName parameter.</param> /// <param name="apiDesc">Api description.</param> /// <returns>Return if version exists.</returns> private bool ResolveDocInclusionPredicate(string docName, ApiDescription apiDesc) { var values = apiDesc.RelativePath .Split('/') .Select(v => v.Replace("v{version}", docName)); apiDesc.RelativePath = string.Join("/", values); var versionParameter = apiDesc.ParameterDescriptions .SingleOrDefault(p => p.Name == "version"); if (versionParameter != null) { apiDesc.ParameterDescriptions.Remove(versionParameter); } var versions = apiDesc.ControllerAttributes() .OfType <ApiVersionAttribute>() .SelectMany(attr => attr.Versions); return(versions.Any(v => { return $"v{v.ToString()}" == docName; })); }
private static void SetResponseModelExamples(Operation operation, ApiDescription apiDescription) { var responseAttributes = apiDescription .ActionAttributes() .OfType <SwaggerResponseExampleAttribute>() .ToList(); responseAttributes.AddRange(apiDescription.ControllerAttributes().OfType <SwaggerResponseExampleAttribute>()); foreach (var attr in responseAttributes) { var statusCode = attr.StatusCode.ToString(); var response = operation.Responses.FirstOrDefault(r => r.Key == statusCode); if (response.Equals(default(KeyValuePair <string, Response>)) == false) { if (response.Value != null) { var provider = ExamplesProvider(_services, attr.ExamplesProviderType); var serializerSettings = SerializerSettings(attr.ContractResolver, attr.JsonConverter); response.Value.Examples = FormatJson(provider, serializerSettings, true); } } } }
private static bool IsExcluded(ApiDescription description) { var controllerExcluded = description.ControllerAttributes().OfType <AuthorizeAttribute>() .Any(IsAdministratorRole); if (controllerExcluded) { return(true); } var actionExcluded = description.ActionAttributes().OfType <AuthorizeAttribute>().Any(IsAdministratorRole); if (actionExcluded) { return(true); } return(false); }