public SwaggerController()
 {
     _apiDescriptions = GlobalConfiguration.Configuration.Services.GetApiExplorer().ApiDescriptions
                        .Where(s => !s.ActionDescriptor.ControllerDescriptor.ShouldSwaggerIgnore());
     _docProvider =
         (XmlCommentDocumentationProvider)GlobalConfiguration.Configuration.Services.GetDocumentationProvider();
 }
Example #2
0
        public void ProcessTypeName_GenericList_SpecList()
        {
            var typeName = "System.Collections.Generic.List`1[[Terra.Adv.AdApi.Domain.LineItems.LineItem, Terra.Adv.AdApi.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]";
            var actual   = XmlCommentDocumentationProvider.ProcessTypeName(typeName);

            Assert.AreEqual("System.Collections.Generic.List{Terra.Adv.AdApi.Domain.LineItems.LineItem}", actual);
        }
Example #3
0
 public ApiFactory(string virtualPath, XmlCommentDocumentationProvider docProvider, ParameterFactory parameterFactory, ModelFactory modelFactory, ICollection <ApiDescription> apiDescriptions)
 {
     _apiDescriptions  = apiDescriptions;
     _modelFactory     = modelFactory;
     _parameterFactory = parameterFactory;
     _appVirtualPath   = virtualPath.TrimEnd('/');
     _docProvider      = docProvider;
 }
Example #4
0
        public ApiFactory()
        {
            _appVirtualPath   = HttpRuntime.AppDomainAppVirtualPath.TrimEnd('/');;
            _apiDescriptions  = GlobalConfiguration.Configuration.Services.GetApiExplorer().ApiDescriptions;
            _parameterFactory = new ParameterFactory();

            _docProvider  = (XmlCommentDocumentationProvider)GlobalConfiguration.Configuration.Services.GetService((typeof(IDocumentationProvider)));
            _modelFactory = new ModelFactory(_docProvider);
        }
Example #5
0
 public static void ConfigureDocumentationProvider(string absoluteDocPath, ServicesContainer services)
 {
     try
     {
         var docProvider = new XmlCommentDocumentationProvider(absoluteDocPath);
         services.Replace(typeof(IDocumentationProvider), docProvider);
     }
     catch (FileNotFoundException)
     {
         throw new Exception("Please enable \"XML documentation file\" in project properties with default (bin\\Sample.WebApi.XML) value or edit value in App_Start\\SwaggerNet.cs");
     }
 }
Example #6
0
        private ResourceListing getDocs(HttpActionContext actionContext)
        {
            var assemblyType = (actionContext.ActionDescriptor as ReflectedHttpActionDescriptor).MethodInfo.DeclaringType;
            var docProvider = new XmlCommentDocumentationProvider(); //(XmlCommentDocumentationProvider)GlobalConfiguration.Configuration.Services.GetDocumentationProvider();

            ResourceListing r = SwaggerGen.CreateResourceListing(actionContext);

            foreach (var api in GlobalConfiguration.Configuration.Services.GetApiExplorer().ApiDescriptions)
            {
                if (api.ActionDescriptor.ActionName.EndsWith("API"))//Ignore each Default API action
                    continue;

                string apiControllerName = api.ActionDescriptor.ControllerDescriptor.ControllerName;
                if (api.Route.Defaults.ContainsKey(SwaggerGen.SWAGGER) ||
                    apiControllerName.ToUpper().Equals(SwaggerGen.SWAGGER.ToUpper()))
                    continue;

                // Make sure we only report the current controller docs
                if (!apiControllerName.Equals(actionContext.ControllerContext.ControllerDescriptor.ControllerName))
                    continue;

                ResourceApi rApi = SwaggerGen.CreateResourceApi(api);
                r.apis.Add(rApi);

                ResourceApiOperation rApiOperation = SwaggerGen.CreateResourceApiOperation(r, api, docProvider);
                rApi.operations.Add(rApiOperation);

                foreach (var param in api.ParameterDescriptions)
                {
                    ResourceApiOperationParameter parameter = SwaggerGen.CreateResourceApiOperationParameter(r, api, param, docProvider);
                    rApiOperation.parameters.Add(parameter);
                }

                if (System.Configuration.ConfigurationManager.AppSettings["swagger:APITOKEN"] != null &&
                    System.Configuration.ConfigurationManager.AppSettings["swagger:APITOKEN"].Equals("true") &&
                    !api.ActionDescriptor.ActionName.EndsWith("API"))
                {
                    //添加Token
                    ResourceApiOperationParameter p = new ResourceApiOperationParameter();
                    p.name = "ApiToken";
                    p.description = "Api Token";
                    p.paramType = "path";
                    p.required = true;
                    p.dataType = "String";
                    rApiOperation.parameters.Insert(0, p);
                }

                SwaggerGen.CreateModel(r, api, docProvider);
                //r.models = new ResourceApiModel();
            }

            return r;
        }
Example #7
0
        public static void ConfigureDocumentationProvider(string absoluteDocPath, ServicesContainer services)
        {

            try
            {
                var docProvider = new XmlCommentDocumentationProvider(absoluteDocPath);
                services.Replace(typeof(IDocumentationProvider), docProvider);
            }
            catch (FileNotFoundException)
            {
                throw new Exception("Please enable \"XML documentation file\" in project properties with default (bin\\Sample.WebApi.XML) value or edit value in App_Start\\SwaggerNet.cs");
            }


        }
Example #8
0
 public ParameterFactory()
 {
     _docProvider = (XmlCommentDocumentationProvider)GlobalConfiguration.Configuration.Services.GetService((typeof(IDocumentationProvider)));
 }
Example #9
0
 public ParameterFactory(XmlCommentDocumentationProvider docProvider)
 {
     _docProvider = docProvider;
 }
Example #10
0
 public ModelFactory(XmlCommentDocumentationProvider documentationProvider)
 {
     _docProvider = documentationProvider;
 }
        public void Setup()
        {
            var docProvider = new XmlCommentDocumentationProvider(TestHelper.XML_DOC_PATH);
            _factory = new ParameterFactory(docProvider);

        }
Example #12
0
        public void Setup()
        {
            var docProvider = new XmlCommentDocumentationProvider(TestHelper.XML_DOC_PATH);

            _factory = new ParameterFactory(docProvider);
        }
 public void Setup()
 {
     _docProvider = new XmlCommentDocumentationProvider(TestHelper.XML_DOC_PATH);
 }
Example #14
0
 public SwaggerGen()
 {
     _docProvider =
         (XmlCommentDocumentationProvider)GlobalConfiguration.Configuration.Services.GetDocumentationProvider();
 }
 public void Setup()
 {
     _docProvider = new XmlCommentDocumentationProvider(TestHelper.XML_DOC_PATH);
 }