Веб-API .Net Core 3.1, возвращающий 404

#c# #asp.net-web-api #swagger-ui #asp.net-core-3.1

Вопрос:

Я создал новый контроллер в совершенно новом проекте веб-api в .net core 3.1. Всякий раз, когда я пытаюсь опубликовать маршрут, я получаю 404.

Мой контроллер:

 using AutoMapper;
using BankAPIDemo.Models;
using BankAPIDemo.Services.Interfaces;
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Text.RegularExpressions;

namespace BankAPIDemo
{
    [ApiController]
    [Route("api/v3/[controller]")]
    public class AccountsController : Controller
    {
        private IAccountService _accountService;
        IMapper _mapper;

        public AccountsController(IAccountService accountService, IMapper mapper)
        {
            _accountService = accountService;
            _mapper = mapper;
        }

        //registerrNewwAccount
        [HttpPost]
        [Route("register_new_account")]
        public IActionResult RegisterNewAccount([FromBody] RegisterNewAccountModel newAccount)
        {
            if (!ModelState.IsValid) return BadRequest(newAccount);

            //map to aaccount
            var account = _mapper.Map<Account>(newAccount);
            var result = _mapper.Map<GetAccountModel>(_accountService.Create(account, newAccount.Pin, newAccount.ConfirmPin));
            return Ok(result);
        }

        [HttpGet]
        [Route("get_all_accounts")]
        public IActionResult GetAllAccounts()
        {
            //wee want to map to GetAAccountModel as defined in ur 

            var accounts = _accountService.GetAllAccounts();
            var cleanedAccounts = _mapper.Map<IList<GetAccountModel>>(accounts);
            return Ok(cleanedAccounts);
        }

        [HttpPost]
        [Route("authenticate")]
        public IActionResult Authenticate([FromBody] AuthentiateModel model)
        {
            if (!ModelState.IsValid) return BadRequest(model);

            //now let's map
            var result = _mapper.Map<GetAccountModel>(_accountService.Authenticate(model.AccountNumber, model.Pin));
            return Ok(result);
            //it returns an accouunt... let's seee when we run before we know  whether  to map or not

        }

        [HttpGet]
        [Route("get_by_account_number")]
        public IActionResult GetByAccountNumber(string AccountNumber)
        {
            if (!Regex.IsMatch(AccountNumber, @"^[0][1-9]d{9}$|^[1-9]d{9}$")) return BadRequest("Account Number must be 10-digit");

            var account = _accountService.GetByAccountNumber(AccountNumber);
            var cleanedAccount = _mapper.Map<GetAccountModel>(account);
            return Ok(cleanedAccount);
        }

        [HttpGet]
        [Route("get_account_by_id")]
        public IActionResult GetAccountById(int Id)
        {
            var account = _accountService.GetById(Id);
            var cleanedAccount = _mapper.Map<GetAccountModel>(account);
            return Ok(cleanedAccount);
        }

        [HttpPut]
        [Route("update_account")]
        public IActionResult UpdateAccount([FromBody] UpdateAccountModel model)
        {
            if (!ModelState.IsValid) return BadRequest(model);

            var account = _mapper.Map<Account>(model);

            _accountService.Update(account, model.Pin);
            return Ok();

        }

    }
}

 

Когда я ПУБЛИКУЮ этот метод, я получаю 404. Я использую URL-адрес https://localhost:44372/api/v3/Accounts/register_new_account

Все остальное по умолчанию. Я могу показать прогноз погоды.

Комментарии:

1. Пожалуйста, добавьте весь запрос на публикацию, который вы делаете, к вопросу.

2. Кроме того, убедитесь, что порт (44372) и протокол (https) настроены правильно

3. Все ли маршруты в этом контроллере выходят из строя или только один ПОСТ?

4. Это начало работы?

5. Вы уверены, что получаете 404, а не 400?