У меня есть этот контроллер:
[Route("api/[controller]")]
public class UsersController : Controller
{
private readonly IDatingRepository _repo;
public UsersController(IDatingRepository repo)
{
_repo = repo;
}
[HttpGet]
public async Task<IActionResult> GetUsers()
{
var users = await _repo.GetAllUsers();
return Ok(users);
}
[HttpGet]
public async Task<IActionResult> GetUser(int id)
{
var user = await _repo.GetUser(id);
if (user != null)
return Ok(user);
return NoContent();
}
}
Мой класс запуска:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
var key = Encoding.ASCII.GetBytes("super secret key");
services.AddDbContext<DataContext>(x => x.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddTransient<Seed>();
services.AddCors();
services.AddMvc();
services.AddScoped<IAuthRepository, AuthRepository>();
services.AddScoped<IDatingRepository,DatingRepository>();
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, Seed seeder)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else{
app.UseExceptionHandler(builder => {
builder.Run(async context => {
context.Response.StatusCode = (int)HttpStatusCode.InternalServerError;
var error = context.Features.Get<IExceptionHandlerFeature>();
if(error != null)
{
context.Response.AddApplicationError(error.Error.Message);
await context.Response.WriteAsync(error.Error.Message);
}
});
});
}
//seeder.SeedUser();
app.UseCors(x => x.AllowAnyHeader().AllowAnyMethod().AllowAnyOrigin().AllowCredentials());
app.UseAuthentication();
app.UseMvc();
}
}
Я пытался ударить почтальоном:
localhost.../api/users/getusers
Но не смогчтобы выполнить любой из методов.
Я создал образец контроллера, но все еще не могу нажать на метод.
при отправке запроса от почтальона, всегда получающего 404, не найден.Я знаю, это означает, что ресурс, который я ищу, не существует.