当前位置: 首页 > 知识库问答 >
问题:

1个Visual Studio解决方案中的两个AspNetCore API项目--只有1个可以使用Swashbuckle/Swagger

解博明
2023-03-14
    null
<PackageReference Include="Microsoft.OpenApi" Version="1.2.3" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.6.3" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerGen" Version="5.6.3" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="5.6.3" />

对于这两个项目,在*.csproj“ true

对于这两个项目,我都在startup.cs“ConfiguReservices(IServiceCollection services)”方法中添加了以下内容:

services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo
{
Version = "v1",
Title = "ToDo API",
Description = "A simple example ASP.NET Core Web API",
TermsOfService = new Uri("https://example.com/terms"),
Contact = new OpenApiContact
{
Name = "My Name",
Email = string.Empty,
Url = new Uri("https://example.com/twitter"),
},
License = new OpenApiLicense
{
Name = "Use under MIT",
Url = new Uri("https://example.com/license"),
}
});
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath, true);
});
app.UseDeveloperExceptionPage();

app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); c.DocumentTitle = "Todo APIs";
c.DocExpansion(DocExpansion.None);
c.RoutePrefix = string.Empty;
});

其中一个项目正确地创建了Swagger UI“index.html”和“Swagger.json”文件,但另一个项目没有。它只是像添加Swashbuckle/Swagger UI支持之前一样行事。

共有1个答案

汪博达
2023-03-14

来回答我自己的问题:

正确支持Swagger UI的.NetCore项目在startup.cs文件的app.useExceptionHandler()块中有以下代码块:`app.usesWagger();app.useswaggerUI(c=>{

c.SwaggerEndpoint("/swagger/v1/swagger.json", " API V1");
                
c.SwaggerEndpoint("/swagger/v2/swagger.json", " API V2");
 `enter code here`               c.DocumentTitle = "API";
c.DocExpansion(DocExpansion.None);
        `enter code here`        c.RoutePrefix = string.Empty;
            });

app.UseMvc();`

在我的第二个项目中替换了现有的“app.run()”并用app.useExceptionHandler()替换它之后,Swashbuckle创建了Swagger UI供我使用。

 类似资料:
  • 我们目前正在评估Sonarqube/Sonarlint在.NET应用程序中的使用。我们对到目前为止所看到的非常满意(顺便说一下,把SonarQube带到这一步是值得称赞的--我几年前在我的博士项目中使用过它,从那以后它有了很大的改进!)。 但是,有一件事有点令人惊讶:当我将我的SonarLint实例连接到我们的SonarQube服务器(它工作得很好)并开始同步绑定的项目时,SonarLint开始下

  • 我在Visual Studio中看到了新的比较工具 有没有一种方法,我可以只是比较两个文件与内置的功能在Visual

  • 我有一个大的C++项目,源文件组织在多个文件夹(在文件系统上)。 现在的问题是,当我构建项目时,MSVC将对象文件放在一个单一的平面目录中,结果是: 可以看到,只有一个,因此缺少一个二进制对象。显然,链接器会抱怨,因为它找不到类/函数/...在丢失的对象文件中定义。 是否有一种方法告诉MSVC创建具有唯一名称的对象文件,这取决于这些文件所在的目录(或过滤器)?

  • 本文向大家介绍.NET Framework 从解决方案中的一个项目中卸载软件包,包括了.NET Framework 从解决方案中的一个项目中卸载软件包的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 本文向大家介绍window.onload绑定多个事件的两种解决方案,包括了window.onload绑定多个事件的两种解决方案的使用技巧和注意事项,需要的朋友参考一下 前言 有些函数,必须在网页加载完毕后执行。比如:涉及DOM操作的。 网页加载完毕时会触发一个onload事件,将函数绑定到这个事件上即可。 问题来了:如果需要同时绑定多个事件,该如何处理呢?有两种解决方法 方案一 创建一个匿名函数,