我正在研究nopCommerce webApi插件,当我向api插件添加新方法时。 例如,我将 GetTest()方法添加到产品api控制器。它没有显示在swaggerUI中显示的方法列表中。
正如您所见,SwaggerUi列表中没有 GetTest()方法。
我还在 startup.cs 中添加了web api路由。
这是我的api GetTest()方法。
这是 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的新手。
答案 0 :(得分:0)
尝试像所有其他HttpGet方法一样添加响应类型
例如
{{1}}
我无法测试这一点,但这似乎是现有方法的唯一区别。