ASP.NET 코어에서 Swagger의 기본 URL을 변경하는 방법
ASP.NET Core 프로젝트에서 스웨거를 활성화하면 기본적으로 다음 URL에서 사용할 수 있습니다.
http://localhost:<random_port>/swagger/ui
저는 대신 다른 기본 URL을 사용하고 싶습니다./swagger/ui
어떻게/어디서 구성할 수 있습니까?
이전 버전의 경우 다음을 구성할 수 있습니다.RootUrl
그러나 ASP.NET Core에는 유사한 방법이 없습니다.
.EnableSwagger(c =>
{
c.RootUrl(req => myCustomBasePath);
});
ASP.NET Core 2의 경우(및 사용)Swashbuckle.AspNetCore.Swagger -Version 4.0.1
), 기본 스웨거 UI 기본 URL을 변경하는 전체 구성에 대해 몇 가지 작업을 수행할 수 있습니다.
기본 스웨거 UI URL의 시작 부분에 "mycoolapi"를 추가하려면 다음과 같이 하십시오.http://<server>/mycoolapi/swagger
그런 다음 다음을 수행합니다.
Startup.cs 구성 방법에서 다음을 수행합니다.
app.UseSwagger(c =>
{
c.RouteTemplate = "mycoolapi/swagger/{documentname}/swagger.json";
});
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/mycoolapi/swagger/v1/swagger.json", "My Cool API V1");
c.RoutePrefix = "mycoolapi/swagger";
});
그런 다음 현재 시작 시(개발 목적으로) 스웨거 UI에서 브라우저를 시작하도록 실행 설정이 있는 경우, 실행 설정.json 파일 프로파일 섹션을 유사하게 업데이트합니다.
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "mycoolapi/swagger",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"MyProject.Web": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "mycoolapi/swagger",
"applicationUrl": "https://localhost:5001;http://localhost:5000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
새 스웨거 버전은 RoutePrefix라는 속성을 제공합니다.
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.RoutePrefix = "docs";
});
.net core에 대해 작동해야 합니다.
.NET 5에서는 다른 대답이 나오지 않았습니다.경로에 'docs'를 추가한 방법은 다음과 같습니다.
app.UseSwagger(c => c.RouteTemplate = "/swagger/docs/{documentName}/swagger.json");
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/docs/v2/swagger.json", "My API"));
구성에서도 이 작업을 수행할 수 있습니다.
app.UseSwaggerUI(c =>
{
c.RoutePrefix = string.Empty;
c.SwaggerEndpoint("/swagger/v1/swagger.json", "MY API");
});
- launchSettings.json 파일을 엽니다.
- 설정에 따라 "프로파일" 노드 아래에 하나 이상의 프로파일이 있어야 합니다."IIS Express"와 프로젝트 이름을 가진 다른 이름(예: WebApplication1)이 있는 경우가 있는데, 이제 launchUrl 항목을 "launchUrl"로 변경합니다. "swagger"는 제 문제를 해결했습니다.
- 이것이 작동하지 않고 다른 프로필이 있는 경우 동일한 작업을 수행하고 테스트합니다.
위의 해결책들이 모두 작동하지 않았기 때문에 저는 원본 문서들을 샅샅이 뒤져야 했습니다.Startup.cs 에 있는 이 코드가 저에게 도움이 됩니다.
app.UseSwagger();
app.UseSwaggerUI(c => {
c.SwaggerEndpoint($"./v1/swagger.json", "SapWeb v1");
});
내 사이트는 IIS의 하위 사이트입니다.그래서 처음에는 PathBase를 설정해야 했습니다.
app.UsePathBase($"{pathbase}");
그UseSwaggerUi()
StartUp 클래스의 Configure 메서드에서 미들웨어를 활성화하는 확장 메서드는 두 가지 변수를 사용합니다.abaseRoute
어느 것이swagger/ui
기본적으로 및swaggerUrl
어느 것이swagger/v1/swagger.json
결석으로다른 baseRoute를 제공하기만 하면 됩니다.
//Swagger will be available under '/api' url
app.UseSwaggerUi("api");
사람들이 ASP.NET Core용 Swagger를 구성하는 방법에 대해 자세히 알고 싶다면 블로그 포스트를 작성했습니다. https://dannyvanderkraan.wordpress.com/2016/09/09/asp-net-core-1-0-web-api-automatic-documentation-with-swagger-and-swashbuckle/
언급URL : https://stackoverflow.com/questions/39116047/how-to-change-base-url-of-swagger-in-asp-net-core
'programing' 카테고리의 다른 글
Matlab의 tic 및 toc 함수에 해당하는 파이썬은 무엇입니까? (0) | 2023.07.18 |
---|---|
하위 항목에 값이 포함되어 있는지 여부를 Firebase 쿼리 (0) | 2023.07.18 |
장고 앱을 완전히 제거하는 방법은 무엇입니까? (0) | 2023.07.18 |
대용량 데이터에서 NA를 가장 빠르게 대체할 수 있는 방법.표 (0) | 2023.07.18 |
Python에서 IP 주소를 검증하는 방법은 무엇입니까? (0) | 2023.07.18 |