Правильный тип возврата из веб-API - PullRequest
0 голосов
/ 31 декабря 2018

Я создаю веб-API ac # .net core 2.2 для моего следующего проекта.Мой вопрос: при возврате данных я должен вернуть объект или IActionResult OK(returnObject)?

. Причина, по которой я спрашиваю, заключается в том, что я использую Swagger и Swagger Studio для создания своих моделей для внешнего интерфейса Angular.Если я возвращаю IActionResult из API, возвращенные модели представлений не детализируются в файле swagger.json, поэтому мне придется кодировать их в угловом приложении.Если я возвращаю любой созданный объект, модель создается в swagger.json.

. Какую практику следует использовать для возврата данных из API в этом случае?

Ответы [ 2 ]

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

Вы хотите вернуть IActionResult(object), но вы еще не сделали этого.

Аннотируйте свой контроллер с помощью ProducesAttribute и комментируйте свой метод с помощью ProducesResponseTypeAttribute:

[Produces("application/json")]
public class SomethingController
{
    [ProducesResponseType(typeof(YourObject), (int)HttpStatusCode.OK)]
    public IActionResult GetThing(int id)
    { ... }
}

Это позволяет Swagger UI знать, чего ожидать и документировать его соответствующим образом.Показанный выше для синхронного метода;это работает и для асинхронного.

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

Вы можете вернуть - Определенный тип - IActionResult - ActionResult

Для получения дополнительной информации, пожалуйста, обратитесь к статье MSDN по адресу: https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-2.2

...