Я пытаюсь получить вызов API.Поэтому я запускаю Visual Studio и ввожу это в почтальон:
http://localhost:51266/api/country
, и я ставлю точку останова на метод.Но ничего не происходит.Я получаю 404. Не найден.
Это контроллер:
[Route("api/[controller]")]
[ApiController]
public class CountryController : Controller
{
private ICountryRepository countryRepository;
public CountryController(ICountryRepository repository)
{
this.countryRepository = repository;
}
[HttpGet]
public IActionResult GetCountries()
{
var countries = countryRepository.GetCountries().ToList();
return Ok(countries);
}
}
Что я здесь не так делаю?
Спасибо
ИУ меня есть это в Startup
:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var connectionString = Configuration["connectionStrings:bookDbConnectionString"];
services.AddDbContext<BookDbContext>(c => c.UseSqlServer(connectionString));
services.AddScoped<ICountryRepository, CountryRepository>();
}
Теперь у меня это так:
[ApiController]
public class CountryController : Controller
{
private ICountryRepository countryRepository;
public CountryController(ICountryRepository repository)
{
this.countryRepository = repository;
}
[HttpGet]
[Route("api/[controller]")]
public IActionResult GetCountries()
{
var countries = countryRepository.GetCountries().ToList();
return Ok(countries);
}
}
и мой класс запуска:
public class Startup
{
public static IConfiguration Configuration { get; set; }
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var connectionString = Configuration["connectionStrings:bookDbConnectionString"];
services.AddDbContext<BookDbContext>(c => c.UseSqlServer(connectionString));
services.AddScoped<ICountryRepository, CountryRepository>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, BookDbContext context)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting();
}
}
Если ясделать это:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, BookDbContext context)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//app.UseRouting();
app.UseMvc();
}
Я получаю это предупреждение:
Предупреждение MVC1005
Использование 'UseMvc' для настройки MVC не поддерживается при использовании маршрутизации конечной точки.Чтобы продолжить использовать UseMvc, установите «MvcOptions.EnableEndpointRouting = false» внутри «ConfigureServices».WebApplication2 D: \ Mijn Documents \ VisualStudio_2019 \ WebApplication2 \ WebApplication2 \ Startup.cs