在swaggerUi中没有显示NopCommerce自定义api方法

时间:2017-11-30 11:56:32

标签: c# asp.net-mvc api asp.net-web-api nopcommerce

我正在研究nopCommerce webApi插件,当我向api插件添加新方法时。 例如,我将 GetTest()方法添加到产品api控制器。它没有显示在swaggerUI中显示的方法列表中。

正如您所见,SwaggerUi列表中没有 GetTest()方法。

enter image description here

我还在 startup.cs 中添加了web api路由。

enter image description here

这是我的api GetTest()方法。

enter image description here

这是 Startup.cs 中的 SwaggerUi 配置。

config.Filters.Add(new ServerErrorHandlerAttribute());

        config.Formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings
        {
            NullValueHandling = NullValueHandling.Ignore
        };

        config.Routes.MapHttpRoute(
            name: "GetTest",
            routeTemplate: "api/products/GetTest",
            defaults: new { controller = "Products", action = "GetTest" });

        // The default route templates for the Swagger docs and swagger-ui are "swagger/docs/{apiVersion}" and "swagger/ui/index#/{assetPath}" respectively.
        config
            .EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "RESTful API documentation");
                c.IncludeXmlComments(string.Format(@"{0}\Plugins\Nop.Plugin.Api\Nop.Plugin.Api.XML", AppDomain.CurrentDomain.BaseDirectory));
                // We need this filter to exclude some of the API endpoints from the documentation i.e /OAuth/Authorize endpoint
                c.DocumentFilter<ExcludeEnpointsDocumentFilter>();
                c.OperationFilter<RemovePrefixesOperationFilter>();
                c.OperationFilter<ChangeParameterTypeOperationFilter>();
            })
            .EnableSwaggerUi(c =>
            {
                var currentAssembly = Assembly.GetAssembly(this.GetType());
                var currentAssemblyName = currentAssembly.GetName().Name;

                c.InjectJavaScript(currentAssembly, string.Format("{0}.Scripts.swaggerPostPutTryItOutButtonsRemoval.js", currentAssemblyName));
            });

        app.UseWebApi(config);

        config.DependencyResolver = new AutofacWebApiDependencyResolver(EngineContext.Current.ContainerManager.Container);

        // Configure the asp.net webhooks.
        ConfigureWebhooks(config);

请指导我一点我是SwaggerUI的新手。

1 个答案:

答案 0 :(得分:0)

尝试像所有其他HttpGet方法一样添加响应类型

例如

{{1}}

我无法测试这一点,但这似乎是现有方法的唯一区别。