Сообщение веб-API с ошибкой 500 в postman — как решить?

#asp.net-core #http-post #postman #asp.net-core-webapi

#asp.net-core #http-post #postman #asp.net-core-webapi

Вопрос:

Я пытаюсь использовать postman для тестирования моего метода POST, однако я получаю ошибку 500, и при вызове в методе try catch моего api попытка завершается неудачно и выдает ошибку, но я не уверен, почему или как это выяснить.

Я хотел бы ввести любые фиктивные данные в свой «message_Chain», и я скопировал приведенный ниже код, может кто-нибудь, пожалуйста, скажите мне, что я сделал не так? Я очень новичок в использовании веб-API и postman, поэтому я не уверен, как отследить, где что-то пошло не так.

РЕДАКТИРОВАТЬ — также как мне отобразить более подробную информацию о том, что на самом деле представляет собой ошибка 500 в postman, чтобы я мог понять, почему она была выброшена?

 // POST: api/Message_Chain
        // To protect from overposting attacks, enable the specific properties you want to bind to, for
        // more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
        [HttpPost]
        public async Task<ActionResult<Message_Chain>> PostMessage_Chain(Message_Chain message_Chain)
        {
            _context.Message_Chain.Add(message_Chain);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (Message_ChainExists(message_Chain.MessageChainId))
                {
                    return Conflict();
                }
                else
                {
                    throw;
                }
            }

            return CreatedAtAction("GetMessage_Chain", new { id = message_Chain.MessageChainId }, message_Chain);
        }

public class Message_Chain
    {
        [Key]
        public int MessageChainId { get; set; }
        public int MessageSubjectId { get; set; }
        public string MessageBody { get; set; }
        public int SentFromId { get; set; }
        public DateTime DateTime { get; set; }
        public Message_Subject Message_Subject { get; set; }
        public ICollection<Colleague_Message> Colleague_Message { get; set; }
    }
}
  

Это то, что я вставил в postman,

 POST > http://<my url>/api/Message_Chain
BODY > JSON
{
    "messageChainId": 10,
    "messageSubjectId": 10,
    "messageBody": "Testing my post to message chain method from postman",
    "sentFromId": 1000001,
    "dateTime": "2020-11-05T12:15:00"
}
  

Комментарии:

1. Пожалуйста, проверьте тип ошибки в консоли. Потому что я не могу воспроизвести ошибку в этом коде.

Ответ №1:

попробуйте это

 [HttpPost]
    public async Task<ActionResult<Message_Chain>> PostMessage_Chain([FromBody] Message_Chain message_Chain)
    {
        _context.Message_Chain.Add(message_Chain);
        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateException)
        {
            if (Message_ChainExists(message_Chain.MessageChainId))
            {
                return Conflict();
            }
            else
            {
                throw;
            }
        }

        return CreatedAtAction("GetMessage_Chain", new { id = message_Chain.MessageChainId }, message_Chain);
    }
  

Комментарии:

1. спасибо за ответ, не повезло, к сожалению, я получаю ту же ошибку