Почему метод действия не отображается в Web API? - PullRequest
0 голосов
/ 21 февраля 2020

У меня есть веб-API, я написал метод действия. но это не правильно видно, когда я запускаю приложение. Я не вижу SendPushNotification на прикрепленном изображении.

enter image description here

Код контроллера:

[RoutePrefix("api/OTP")]
public class OTPController : ApiController
{
    public IHttpActionResult Get(int id)
    {
        return Ok("value");
    }
    [HttpGet]
    public IHttpActionResult SendPushNotification(string userId, string factorId, string domain)
    {
        var response = _oTPRepository.SendPushNotification(userId, factorId, domain);

        return Ok(response);
    }

Ответы [ 2 ]

0 голосов
/ 25 февраля 2020

в упомянутом изображении второй метод - это то, что вы на самом деле ищете. маршрутизация по умолчанию для методов действия - api / {controller_name}. если вы хотите получить доступ к этому методу как к вашему заданному имени, вы установите атрибут маршрутизации выше этого метода действия. как [Маршрутизация ("api / OTP / SendPushNotification")]

0 голосов
/ 21 февраля 2020

добавьте Route поверх вашего метода, что-то вроде этого:

[HttpGet]
[Route("SendPushNotification")]
    public IHttpActionResult SendPushNotification(string userId, string factorId, string domain)
    {
        var response = _oTPRepository.SendPushNotification(userId, factorId, domain);

        return Ok(response);
    }

Это объединится с RoutePrefix от вашего контроллера и даст вам то, что вы хотите. Вы также можете называть это как хотите, что имеет смысл для вашего API.

...