我正在构建与Swagger集成的Asp.Net Core 2.x web api.为了访问招摇,我不得不将/ swagger附加到网址,例如.https://mywebapi.azurewebsites.net/swagger/
如何将https://mywebapi.azurewebsites.net/重定向到https://mywebapi.azurewebsites.net/swagger/?
给定以下自动生成的 Visual Studio Code launch.json 配置:
我希望localhost:5000/swagger在调试时启动浏览器,但我已经尝试了六种不同的东西,但没有任何效果。它只是打开到localhost:5000. 我在这里缺少什么?除了按 Ctrl+空格键查看列表之外,没有关于所有可用属性的通用文档(我可以找到),这没有多大帮助。
我遗漏了我试图让它按照我想要的方式工作的失败尝试......
{
"name": "Launch Demo.Api",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build",
"program": "${workspaceRoot}/Demo.Api/bin/Debug/netcoreapp2.1/Demo.Api.dll",
"args": [],
"cwd": "${workspaceRoot}/Demo.Api",
"stopAtEntry": false,
"launchBrowser": {
"enabled": true,
"args": "${auto-detect-url}",
"windows": {
"command": "cmd.exe",
"args": "/C start ${auto-detect-url}"
},
"osx": {
"command": "open"
},
"linux": {
"command": "xdg-open"
}
},
"env": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
Run Code Online (Sandbox Code Playgroud) 我正在创建一个ASP.NET Core API应用程序,当前,当创建一个新项目时,会有一个名为Values的控制器,默认情况下,API会在您运行时打开它.因此,我删除了该控制器并添加了一个名为Intro的新控制器,并在其中添加了一个名为Get的操作.在Startup.cs文件中,我有以下几行代码:
app.UseMvc(opt =>
{
opt.MapRoute("Default",
"{controller=Intro}/{action=Get}/{id?}");
});
Run Code Online (Sandbox Code Playgroud)
而我的Intro控制器看起来像这样:
[Produces("application/json")]
[Route("api/[controller]")]
[EnableCors("MyCorsPolicy")]
public class IntroController : Controller
{
private readonly ILogger<IntroController> _logger;
public IntroController(ILogger<IntroController> logger)
{
_logger = logger;
}
[HttpGet]
public IActionResult Get()
{
// Partially removed for brevity
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行API时,它默认尝试导航到/api/values,但由于我删除了值控制器,现在我得到404未找到错误.如果我手动然后导航到/api/intro,我将获得从Intro控制器内的Get操作提供的结果.如何在API运行时(例如通过Debug-> Start Without Debugging)确保默认情况下从Intro控制器获取Get操作?