ASP.Net Core with Swagger 只加载 api 定义,它没有到达断点
ASP.Net Core with Swagger just loads the api definitions and it is not hitting the breakpoints
我们正在努力实现新的 asp.net 核心网络 api 大摇大摆。
我遇到的问题是 swagger UI 显示我的 TestString 调用如下:
控制器调用看起来是这样的:
[ApiController]
//[Route("[controller]/[action]")]
public class ObjectController : ControllerBase
{
private readonly IApplicationDBContext _context;
public ObjectController(IApplicationDBContext context)
{
_context = context;
}
[Route("api/object/TestString")]
[HttpGet]
public string TestString()
{
return "awe";
}
}
但是当我点击调用来测试它时,它只是告诉我它正在加载并且它没有在方法的 return 上击中我的断点,也没有抛出任何错误。
下面是我在项目中的Startup.cs文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen();
services.AddDbContext<NORDbContext>(x => x.UseSqlServer(Configuration.GetConnectionString("ConnStr")));
services.AddScoped(provider => provider.GetService<IApplicationDBContext>());
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
options.RoutePrefix = string.Empty;
});
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
我也尝试过更改控制器和方法上的路由,但无济于事。
我还尝试通过添加“./”和删除它来更改 swagger 端点。
我希望这是我忽略的小问题,但到目前为止,我在谷歌上搜索的任何内容都没有真正帮助我解决问题。
修正路线,恕我直言,更改控制器名称。在自定义 class 或变量名称中使用保留字不是最好的主意。还有很多话
[Route("~/api/test/TestString")]
public string TestString()
{
return "awe";
}
使用这个:
[HttpGet("TestString")]
public string TestString()
{
return "awe";
}
我们正在努力实现新的 asp.net 核心网络 api 大摇大摆。
我遇到的问题是 swagger UI 显示我的 TestString 调用如下:
控制器调用看起来是这样的:
[ApiController]
//[Route("[controller]/[action]")]
public class ObjectController : ControllerBase
{
private readonly IApplicationDBContext _context;
public ObjectController(IApplicationDBContext context)
{
_context = context;
}
[Route("api/object/TestString")]
[HttpGet]
public string TestString()
{
return "awe";
}
}
但是当我点击调用来测试它时,它只是告诉我它正在加载并且它没有在方法的 return 上击中我的断点,也没有抛出任何错误。
下面是我在项目中的Startup.cs文件:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen();
services.AddDbContext<NORDbContext>(x => x.UseSqlServer(Configuration.GetConnectionString("ConnStr")));
services.AddScoped(provider => provider.GetService<IApplicationDBContext>());
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
options.RoutePrefix = string.Empty;
});
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
我也尝试过更改控制器和方法上的路由,但无济于事。
我还尝试通过添加“./”和删除它来更改 swagger 端点。
我希望这是我忽略的小问题,但到目前为止,我在谷歌上搜索的任何内容都没有真正帮助我解决问题。
修正路线,恕我直言,更改控制器名称。在自定义 class 或变量名称中使用保留字不是最好的主意。还有很多话
[Route("~/api/test/TestString")]
public string TestString()
{
return "awe";
}
使用这个:
[HttpGet("TestString")]
public string TestString()
{
return "awe";
}