Так что, действительно, это первая попытка создать веб-сервис REST и работа с любым веб-материалом.Следовали этому руководству: http://www.patrickschadler.com/creating-a-rest-webservice-with-net-core/
В нем используется очень простой подход (как этот подход, так как мне не требуется все вредоносное ПО, которое добавляется при выборе « Веб-приложение »опция).
Тем не менее, как я следовал примеру:
- Запустил программу как есть (увидел ответ hello world)
- Затем добавил запись для чтенияконтроллер
- Добавлены элементы в Startup.cs
Затем попытался вызвать: https://localhost:44325/api/r_w, это привело к ответу 404, который я вижу в окне вывода отладки проектаи в браузере.
Я осмотрелся, и многие люди используют выбор Веб-приложение , добавляя несколько других файлов и зависимостей, и решения этих проблем не помогают.
Первоначально я думал, что это было с тем, как выписан маршрут:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
Однако, поскольку некоторые решения, которые я искал, предложили изменить маршрут, не оказали на меня никакого влиянияк сожалению.
Я даже пытался использовать routedebugger, однако в Dependencies / Nuget в обозревателе решений он показывает, что существуют проблемы с совместимостью, и он не будет работать должным образом.
Затем выяснилось, что это очень полезно: https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing?view=aspnetcore-2.1
Ниже приведен файл запуска:
public class Startup
{
public IConfiguration Configuration { get; }
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();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//app.Run(async (context) =>
//{
// await context.Response.WriteAsync("Hello World!");
//});
app.UseStaticFiles();
//app.UseMvc();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
Небольшой фрагмент из контроллера чтения / записи (полностью без измененийс того момента, когда человек добавляет его в проект):
namespace deliver_data.wwwroot.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class r_wController : ControllerBase
{
// GET: api/r_w
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
Очень хотел бы, чтобы этот пример работал, кажется, самый простой.Просто не понимаю, почему это не сработает.Есть ли серьезное отсутствие понимания чего-либо с моей точки зрения?