我试图建立一个过滤器Swashuckle在API留档省略项目的模型/实体/模式,保留控制器。采用的技术是Swashuckle。AspNetCore v3.0.0/SwaggerUIv3.17.1。我已经找到了省略控制器中某个方法的方法,但我想省略留档中的模型。我发现了一个与我类似的问题,包括只隐藏属性。
遵循筛选器代码
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
if (!(context.ApiModel is ApiObject))
{
return;
}
var model = context as ApiObject;
if (schema?.Properties == null || model?.ApiProperties == null)
{
return;
}
var excludedProperties = model.Type
.GetProperties()
.Where(
t => t.GetCustomAttribute<SwaggerExcludeAttribute>() != null
);
var excludedSchemaProperties = model.ApiProperties
.Where(
ap => excludedProperties.Any(
pi => pi.Name == ap.MemberInfo.Name
)
);
foreach (var propertyToExclude in excludedSchemaProperties)
{
schema.Properties.Remove(propertyToExclude.ApiName);
}
}
quote:如何配置Swashbuckle以忽略模型上的属性
有没有人建议只隐藏文档中的模型/实体/模式,而不仅仅是它们的属性?如下图所示。
至少对我来说,我必须做这样的事情:
internal class SwaggerSchemaFilter : ISchemaFilter
{
public void Apply(OpenApiSchema schema, SchemaFilterContext context)
{
var keys = new System.Collections.Generic.List<string>();
var prefix = "My.Prefix";
foreach(var key in context.SchemaRepository.Schemas.Keys)
{
if (key.StartsWith(prefix))
{
keys.Add(key);
}
}
foreach(var key in keys)
{
context.SchemaRepository.Schemas.Remove(key);
}
}
}
在您的招摇过市/招摇过市UI配置中,将DefaultModelsExpandDepth设置为-1:
app.UseSwaggerUI(c =>
{
...
c.DefaultModelsExpandDepth(-1);
}
这里包括 Nunjuck 所有可用的功能。 Nunjucks 是 jinja2 的 javascript 的实现,所以如果此文档有什么缺失,你可以直接查看 jinja2 的文档,不过两者之间还存在一些差异。 文件扩展名 虽然你可以用任意扩展名来命名你的Nunjucks模版或文件,但Nunjucks社区还是推荐使用.njk。 如果你在给Nunjucks开发工具或是编辑器上的语法插件时,请记得使用.n
模板文件一定要小写下划线,如 list_pubu.html 你可以给你每一个模板文件增加一个json配置文件,用于描述这个模板文件;配置文件和模板文件名是同名的,只是后缀为 json,如simpleboot3/portal/index.html模板文件的配置文件就是simpleboot3/portal/index.json; 一个简单的配置文件内容如下: { "name": "门户应用首页
模板文件一定要小写下划线,如 list_pubu.html 你可以给你每一个模板文件增加一个json配置文件,用于描述这个模板文件;配置文件和模板文件名是同名的,只是后缀为 json,如simpleboot3/portal/index.html模板文件的配置文件就是simpleboot3/portal/index.json; 一个简单的配置文件内容如下: { "name": "门户应用首页
了解如何在 Dreamweaver“设计”视图和“代码”视图中识别模板和基于模板的文档。 在“设计”视图中识别模板 在“设计”视图中,可编辑区域出现在“文档”窗口的矩形外框中。查看“文档”窗口中的底部窗格可看到区域的名称。 通过查看“文档”窗口中的标题栏,可以识别模板文件。文件的文件扩展名为 .dwt。在“设计”视图中识别模板 在“代码”视图中识别模板 在“代码”视图中,使用以下注释标记 HTML
Smarty 是一个 php 模板引擎。更准确的说,它分开了逻辑程序和外在的内容,提供了一种易于管理的方法。 Github 地址:https://github.com/smarty-php/smarty 官网:https://www.smarty.net/
Jade 是一个高性能的模板引擎,它深受 Haml 影响,它是用 javascript 实现的,并且可以供 node 使用。