. net Web API - do c поддержка переменного типа ответа - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть метод API, который принимает параметр идентификатора запроса и возвращает json для этого запроса. Моя проблема в том, что запрос может быть разных типов - например: NewUserRequest, NewServerRequest, et c.

Я хочу, чтобы мой API был простым, с одним действием, которое потребители могут вызывать, чтобы получить Информация о запросе.

Мой код:

 [ResponseType(typeof(WebServiceResponseData<Request>))]
 public async Task<HttpResponseMessage> Get(int reqID)
 {
     // Get an IRequest (retrieves the type, then the concrete request obj):
     var savedRequest = await RequestFactory.Get(_db, reqID);
     // Generate the response and wrap the data:
     return Request.CreateResponse(HttpStatusCode.OK, WebServiceResponseData<Request>.SuccessResponse(Models.Request.From(savedRequest)));
 }

Request - это базовый класс для всех запросов. Проблема заключается в том, что когда документация генерируется с помощью веб-API, она не включает в себя дополнительные свойства дочерних типов запросов.

Какие решения существуют для этого? Могу ли я переопределить создание документации и заменить Request всеми возможными дочерними классами? Или есть лучшее решение - Могу ли я иметь ссылки на все возможные типы, перечисленные на странице для запроса, например?

...