Как я могу автоматически создавать интерфейсы refit из существующих контроллеров? - PullRequest
0 голосов
/ 17 октября 2018

Я изучаю библиотеку refit и оцениваю, стоит ли мне интегрироваться в мой проект.

Допустим, у меня есть этот контроллер, который принимает сообщение POST с конкретным контрактом:

[Route("api/[controller]")]
[ApiController]
public class KeepAliveController : ControllerBase
{
    [HttpPost]
    public IActionResult Post(KeepAliveContract keepAliveContract)
    {
        // 
    }
}

Из того, что я понимаю из документации refit, я должен создать интерфейс,Давайте назовем это IKeepAliveService.Это выглядело бы так:

public interface IKeepAliveService
{
    [Post("api/keepalive")]
    Task SendKeepAliveAsync(KeepAliveContract keepAliveContract);
}

Этот способ действий может привести к потенциальным ошибкам во время выполнения, если я испорчу маршрут в PostAttribute или в самой подписи.

Вопрос

Есть ли способ автоматически генерировать этот интерфейс из существующих контроллеров и, как таковой, уменьшить риск ошибок?

1 Ответ

0 голосов
/ 04 декабря 2018

Вы можете просто щелкнуть правой кнопкой мыши на имени класса, выбрать пользовательские действия из контекстного меню и затем нажать на интерфейс извлечения

...