Итак, я работаю над своим веб-приложением в .net core 2.1. Я использовал шаблон Api, и я пытаюсь заставить мой контроллер выполнять HttpGet, где я хочу перечислить все элементы из моей базы данных.
Мой DbProvider в данном случае является сервис-классом.
Я следовал этому уроку:
https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-2.2&tabs=visual-studio
Мой контроллер
[Route("api/[controller]")]
[ApiController]
public class ValueController : ControllerBase
{
DbProvider _dbProvider;
public ValueController(DbProvider dbProvider)
{
_dbProvider = dbProvider;
}
[HttpGet]
public async Task<IEnumerable<Dto>> ListAllItemsAsync()
{
return await _dbProvider.ListAllValuesAsync();
}
}
Мой класс обслуживания (провайдер)
public class DbProvider
{
DbRepository _repository;
public DbProvider(DbRepository repository)
{
_repository = repository;
}
public async Task<IEnumerable<Dto>> ListItemsAsync()
{
return await _repository.ListAsync();
}
}
Мой Startup-файл:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_2_2);
var connString = "database-connectionsting-hardcoded-for-now";
services.AddDbContext<DbContext>(options => options.UseSqlServer(connString));
services.AddMvc();
services.AddTransient<DbProvider>();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else app.UseHsts();
app.UseDefaultFiles();
app.UseStaticFiles();
app.UseHttpsRedirection();
app.UseMvc();
}
Я получаю код ошибки 404, а в Почтальоне я не могу получить никаких результатов.
Я ожидаю получить некоторые значения json из моей базы данных, чтобы убедиться, что все работает нормально.
Чего мне не хватает?
Я могу сделать обычный HttGet-метод, и он работает. Как это:
[HttpGet]
public ActionResult Index() //This works
{
return Content("Sucsess! ");
}