none
WEB API retornar Objeto e String dentro do mesmo return. RRS feed

  • Pergunta

  • Olá a todos,

    Sou novo em desenvolvimento c# e tenho um CRUD WEB API e gostaria de que quando fizesse uma ação (GET, POST, PUT, DELETE) retorne no postman além dos dados requeridos uma frase do tipo "Usuário atualizado". Segue código:

            // GET: api/Pessoa/5
            [ResponseType(typeof(Pessoa))]
            public IHttpActionResult GetPessoa(int id)
            {
                String frase = "Pesquisa realizada";
                Pessoa pessoa = db.Pessoa.Find(id);
                if (pessoa == null)
                {
                    return NotFound();
                }
    
    
                return Ok(pessoa);
                ResponseMessage(Request.CreateResponse(HttpStatusCode.Accepted, "Busca realizada "));
    
            }
    Fiz uma série de testes porém só obtenho retornos que não me ajudam, como por exemplo após um Get recebo o seguinte retorno: 
    {
        "Message": "Ocorreu um erro.",
        "ExceptionMessage": "O tipo 'ObjectContent`1' não pôde serializar o corpo da resposta para o tipo de conteúdo 'application/json; charset=utf-8'.",
        "ExceptionType": "System.InvalidOperationException",
        "StackTrace": null,
        "InnerException": {
            "Message": "Ocorreu um erro.",
            "ExceptionMessage": "Self referencing loop detected for property 'ApplicationInstance' with type 'ASP.global_asax'. Path 'Response.RequestMessage.Properties.MS_HttpContext.ApplicationInstance.Context'.",
            "ExceptionType": "Newtonsoft.Json.JsonSerializationException",
    .
    .
    .
    }

    Grato desde ja

    terça-feira, 8 de janeiro de 2019 11:10

Respostas

  • Olá novamente, 

    Achei a resposta que eu procurava, ao invés de passar Ok(pessoa) utilizei o new para passar a pessoa e também a string

    return Ok(new { Pessoa = pessoa, String = "Busca realizada" } );

    Funcionou.

    • Marcado como Resposta Douglas Souza05 terça-feira, 8 de janeiro de 2019 13:18
    terça-feira, 8 de janeiro de 2019 13:18