Как вызвать метод post в проекте уведомлений из проекта web api - PullRequest
0 голосов
/ 28 ноября 2018

Вот мой код, 2 проекта web api и проект уведомлений, Как получить доступ к методу публикации проекта уведомлений из проекта web api.

namespace NotificationApi.Controllers
{

    [Route("api/[controller]/[action]")]
    public class MessageController : Controller
    {
        private IHubContext<NotifyHub, ITypedHubClient> _hubContext;

        public MessageController (IHubContext<NotifyHub, ITypedHubClient> hubContext)
        {
            _hubContext = hubContext;
            MessageVM messageVM = new MessageVM();
            messageVM.Payload = "hii";
            messageVM.Type = "success";
              this.Post(messageVM);
    }


        [HttpPost]
        [DisableCors]
        public string Post([FromBody]MessageVM msg)
        {
            string retMessage = string.Empty;
            try
            {

        _hubContext.Clients.All.BroadcastMessage(msg.Type, msg.Payload);
                retMessage = "Success";
            }
            catch (Exception e)
            {
                retMessage = e.ToString();
            }
            return retMessage;
        }
    }
}

1 Ответ

0 голосов
/ 29 ноября 2018

Для доступа к методу между двумя web api projecct, вы можете попробовать HttpClient отправить запрос.

  • MessageVM

        public class MessageVM
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
    
  • Метод из веб-API

    [Route("api/[controller]/[action]")]
    [ApiController]
    public class HttpClientController : ControllerBase
    {
        private readonly HttpClient _httpClient;
        public HttpClientController(HttpClient httpClient)
        {
            _httpClient = httpClient;
        }
    
        public async Task CallWebApi()
        {
            string url = @"https://localhost:44342/api/message/post";
            var model = new MessageVM {
                Id = 1,
                Name = "Test"
            };
            var response = await _httpClient.PostAsJsonAsync(url, model);
            var result = await response.Content.ReadAsStringAsync();
        }
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...