Какой код ответа необходимо вернуть при уже существующей записи?

140
28 февраля 2021, 08:00

Допустим что пользователь хочет добавить страну в базу данных, но не знает существует ли она.

Отправляет пост запрос с названием страны, при принятии запроса я проверяю существует ли такая страна:

// POST: api/countries
[HttpPost]
public async Task<ActionResult<Country>> PostCountry(Country country)
{
    bool isExist = Enumerable.Any(_context.Countries, contextCountry => contextCountry.Name == country.Name);
    if (isExist)
    {
        return Conflict(country); // or return 406 Not Acceptable or 208 Already Reported
    }
    _context.Countries.Add(country);
    await _context.SaveChangesAsync();
    return CreatedAtAction("GetCountry", new { id = country.Id }, country);
}

Какой из следующих кодов ответа лучше возвращать при уже существующей записи?

  1. 208 Already Reported
  2. 406 Not Acceptable
  3. 409 Conflict

Или может есть код который сообщает о том что ресурс существует?

READ ALSO
SQL, СУБД и их особенности

SQL, СУБД и их особенности

Новичок в этом всё поэтому хотелось бы спросить:

116
Ошибка при импорте таблиц в базу данных mysql(phpmyadmin)

Ошибка при импорте таблиц в базу данных mysql(phpmyadmin)

При импорте базы размером в 15 гб, происходит ошибка

91
Отминусовать в mysql от поля decimal 16,8 дробь

Отминусовать в mysql от поля decimal 16,8 дробь

Есть mysql decimal16,8 - запись вида 12312345678

87
Что лучше UPDATE или DELETE+INSERT

Что лучше UPDATE или DELETE+INSERT

Заметил в одном CMS такую вещьПри необходимости обновлении каких либо записей они делают сначала DELETE потом INSERT новой измененной записи, вместо...

148