我正在使用ASP.NETCore6,我创建了带有react选项的应用程序(所以我的文件夹中有一个ClientApp)。
当我运行应用程序时,我会看到我的react用户界面,而无法看到swagger用户界面。
通常,当你选择从两个不同的文件夹构建frontend
和backend
时,如果你在visual studio上运行后端,你会看到swagger UI。
但现在我只看到我的React应用UI。我试图用X1 M2 N1 X或X1 M3 N1 X访问Swagger,但它只是停留在我的React应用UI页面上。
这是我尝试设置的视频:
https://www.youtube.com/watch?v=RvwvFmO-56E
知道了吗?多谢!
这是我的program.cs
代码:
using BugTracker.Context;
using Microsoft.EntityFrameworkCore;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
//app.UseHsts();
}
app.UseSwagger();
app.UseSwaggerUI();
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.MapControllerRoute(
name: "default",
pattern: "{controller}/{action=Index}/{id?}");
app.MapFallbackToFile("index.html"); ;
app.Run();
这是我的控制器代码:
using Microsoft.AspNetCore.Mvc;
using System;
namespace BugTracker.Controllers
{
[ApiController]
[Route("api/authentication")]
public class AuthController : Controller
{
[HttpGet]
public IActionResult Test()
{
return Ok("success");
}
}
}
3条答案
按热度按时间ni65a41a1#
除了添加EndpointsApiExplorer和SwaggerGen服务外,您还必须修改客户端应用程序中的setupProxy.js文件并添加swagger端点。
您的Program.cs档案应该看起来像这样:
useProxy.js文件应该如下所示:
wz1wpwve2#
如果要创建WebAPI + React UI:
1.在
Program.cs
文件中,应添加builder.Services.AddControllers();
1.您的
AuthController
类别应该继承ControllerBase
,而不是Controller
。1.在
app.UseRouting();
之后尝试使用app.UseEndpoints(endpoint => endpoint.MapControllers());
kzipqqlq3#
我有完全相同的问题。没有任何工作(Angular SPA与NET 6)。为见鬼的是,我注解了2行的指示说要使用,它开始工作!