Nswag генерирует дубликаты версий метода get - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть базовый проект .net core web api.Я добавил чванство к этому.Теперь я хочу сгенерировать машинописный клиент, чтобы использовать его в angular.Я использую NSwag Studio.API выглядят так:

public class ValuesController : ControllerBase
    {
        // GET api/values
        [HttpGet]
        public ActionResult<IEnumerable<string>> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        [HttpGet("{id}")]
        public ActionResult<string> Get(int id)
        {
            return "value";
        }

        // POST api/values
        [HttpPost]
        public void Post([FromBody] string value)
        {
        }

        // PUT api/values/5
        [HttpPut("{id}")]
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/values/5
        [HttpDelete("{id}")]
        public void Delete(int id)
        {
        }
    }

Когда я сгенерировал клиент машинописи с помощью NswagStudio, он генерирует две версии метода get, которые вызывают ошибку в машинописи из-за не поддерживающей перегрузки метода.Я хочу создать класс Client для каждого контроллера, поэтому я установил режим генерации операции: «MultipleClientsFromPathSegments».Сгенерированный результат:

export class ApiClient {
  valuesGet(): Observable<string[]> {}
 protected processValuesGet(response: HttpResponseBase): Observable<string[]>{}

valuesPost(value: string | null | undefined): Observable<void>{}
protected processValuesPost(response: HttpResponseBase): Observable<void>{}

valuesGet(id: number): Observable<string>{}
protected processValuesGet(response: HttpResponseBase): Observable<string>{}
}

Я хочу сгенерировать первый get с именем "getAll" в том виде, в каком он должен быть.У кого-нибудь есть идея.Спасибо

1 Ответ

0 голосов
/ 23 января 2019

Попробуйте передать строку в HttpGet (это также изменит URL)

// GET api/values
[HttpGet("GetAll")]
public ActionResult<IEnumerable<string>> Get()
{
    return new string[] { "value1", "value2" };
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...