У меня есть метод 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 всеми возможными дочерними классами? Или есть лучшее решение - Могу ли я иметь ссылки на все возможные типы, перечисленные на странице для запроса, например?