Swagger를 기본 시작 페이지로 설정하는 방법
ABP 템플릿에서 Swagger를 기본 시작 페이지로 설정하는 방법/Account/Login
?
ASP를 사용하고 있습니다.NET MVC 5.x + Angular 1.x
갱신하다
현재 코드:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//ASP.NET Web API Route Config
routes.MapHttpRoute(
name: "swagger_root",
routeTemplate: "",
defaults: null,
constraints: null,
handler: new RedirectHandler((message => message.RequestUri.ToString()), "swagger"));
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
모듈 0을 제외하고 모든 것이 정상적으로 작동합니다."api/Account/Authenticate"
파손된 요청은 다음과 같이 표시됩니다.
리소스를 찾을 수 없습니다.
ASP Net Core > 2.2의 RESTFUL API의 경우 Project/Properties/Debug에서 기본 URL을 설정합니다.
주요 질문은 ASP에 관한 것이었던 것을 알고 있습니다.넷 MVC(ASP용).NetCore는 유사한 질문에 대한 이 답변에서 얻은 우수한 솔루션(Swagger 사용)UI): https://stackoverflow.com/a/50127631/1179562
app.UseSwaggerUI(c =>
{
c.RoutePrefix = "";
...
};
다음 코멘트에 따라 다음 루팅을 RouteConfig.cs에 추가합니다.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//ASP.NET Web API Route Config
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// Set Swagger as default start page
/*
routes.MapHttpRoute(
name: "swagger_root",
routeTemplate: "",
defaults: null,
constraints: null,
handler: new RedirectHandler((message => message.RequestUri.ToString()), "swagger"));
*/
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
Solution Explorer Panel > Properties 순으로 이동했습니다.거기서 launchsettings.json이라는 파일을 찾았습니다.
이 파일에서는 발견된 모든 섹션에서 "launchUrl" 파라미터 값을 "swagger/index.html"로 변경했습니다.
난 괜찮아.
[ Asp ] 。Net Web API Core 3.x는 다음 작업을 수행합니다(Route Prefix).
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Baha'i Prayers API");
c.InjectStylesheet("/swagger/custom.css");
c.RoutePrefix = String.Empty;
});
프로젝트 속성의 Start Action에 Specific Page > /swagger/ui/index를 입력함으로써 이 작업을 수행할 수 있었습니다.
메모: NuGet의 Swashbuckle을 사용하고 있습니다.
Visual Studio, IIS Express 및 IIS에서 모두 잘 작동한 제품입니다.다음 내용으로 컨트롤러를 작성하기 위해서입니다.
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication.Controllers
{
/// <summary>
/// Controller to display API documentation in Swagger format
/// </summary>
[Route("")]
[ApiExplorerSettings(IgnoreApi = true)]
public class DocsController : Controller
{
[Route("docs"), HttpGet]
[AllowAnonymous]
public IActionResult ReDoc()
{
return View();
}
[Route(""), HttpGet]
[AllowAnonymous]
public IActionResult Swagger()
{
return Redirect("~/swagger");
}
}
}
주의: launchsettings.json 파일의 편집은 Visual Studio에서 정상적으로 실행되었지만 IIS에서 애플리케이션을 호스팅할 때 예상대로 작동하지 않는다고 주장합니다.
이렇게 하면 여러 다른 장소에서 많은 설정을 작성하는 것보다 더 깔끔하다는 것을 알 수 있었습니다.
.Net core 3.1의 경우 launchSettings.json 파일에서 설정을 변경합니다.
launchSettings.json 파일 검색 속성 "launchUrl" 값을 "swagger"로 변경합니다.아래를 참조하십시오.
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"AfterPayAPI": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
언급URL : https://stackoverflow.com/questions/47457681/how-to-set-swagger-as-default-start-page
'programing' 카테고리의 다른 글
라디오 버튼으로서의 WooCommerce의 종류 (0) | 2023.03.12 |
---|---|
pymongo.cursor 변환 방법커서가 받아쓰기에 들어가나요? (0) | 2023.03.12 |
스프링 부트 시 휴지 상태 통계가 작동하지 않습니까? (0) | 2023.03.12 |
Jackson을 사용하여 json 개체 만들기 (0) | 2023.03.12 |
Wordpress 2단계 등록 양식 (0) | 2023.03.12 |