我可以添加自定義的html信息(在C#示例下面)
c.SwaggerDoc("v1", new OpenApiInfo { Description ="... here ..."
這里支持html標簽,但不支持樣式。 使用自定義樣式(彩色span、非默認藍色鏈接等。)我必須添加自定義css swagger.css(可以更改名稱并放入更深的文件夾結構中) 在/wwwwroot/swagger.css下的項目根目錄中,使其成為嵌入式資源,并在Configure方法中注入自定義css
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("./swagger/v1/swagger.json", "v1");
options.RoutePrefix = string.Empty;
options.DocExpansion(DocExpansion.List);
options.InjectStylesheet("/swagger.css"); // <<< inject css
});
警告是不支持傳統的css,例如,
//swagger.css
.rcolor {color:red !important;}
//html in OpenApiInfo/Description
<a class='rcolor' href='...'>this should be red link</a>
不改變鏈接的顏色。
要應用顏色,應該使用swagger ui標簽導航:對元素應用獨特的html標簽模式——而不是簡單的& lta & gt...& lt/a & gt;放& lta & gt& ltspan & gt...& lt/span>。& lt/a & gt;例如 并更改css(。swagger-ui,。info是預定義的樣式,帶有swagger -你可以在瀏覽器開發工具/inspect中看到它,我們的OpenApiInfo/Description部分就在這種樣式中。信息)至
.info a span {
color: red !important;
}
.info span a {
color: green !important;
}
現在又是這個
"<pre>colored samples <span><a id='111'>span / a</a></span> , <a id='111'><span>a / span</span></a> "
會是什么樣子
注意,那個。info a span不是一個好主意,因為它還會影響http://localhost/。/swagger/v1/swagger.json鏈接——實際上在瀏覽器檢查器中你可以看到它是& lta & gt...& ltspan & gt....但是您可以通過應用您獨特html標記嵌套來輕松地修復它。
有沒有人對swagger ui中的自定義樣式有更好的解決方案?
出于安全原因,Swagger UI忽略Markdown內容中的HTML樣式、類和data-*屬性。有一個useUnsafeMarkdown配置選項可以禁用這種行為,但它已被棄用,您不應該依賴它。
您提出的解決方案看起來像是一個可行的內聯顏色樣式的變通辦法。