Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
try { MainRepo.Update(entity); } catch (CustomException ex) { // Пример специального исключения. // Должно обрабатываться более элегантно. return BadRequest(ex); } catch (Exception ex) { // Должно обрабатываться более элегантно. return BadRequest(ex); } return Ok(entity);}Метод начинается с установки маршрута как запроса
HttpPutidid[FromRoute]entity[FromBody]ApiControllerМетод проверяет, совпадает ли значение маршрута (
ididНа заметку! Обработка исключений в этом примере (а также в остальных примерах) абсолютно неадекватна. В производственных приложениях вы должны задействовать все знания, полученные к настоящему времени, чтобы элегантно обрабатывать возникающие проблемы в соответствии с имеющимися требованиями.
Метод AddOne()
Вставка записи делается с применением HTTP-метода
POSTAddOne()/// <summary>/// Adds a single record/// </summary>/// <remarks>/// Sample body:/// <pre>/// {/// "Id": 1,/// "TimeStamp": "AAAAAAAAB+E="/// "MakeId": 1,/// "Color": "Black",/// "PetName": "Zippy",/// "MakeColor": "VW (Black)",/// }/// </pre>/// </remarks>/// <returns>Added record</returns>/// <response code="201">Found and updated the record</response>/// <response code="400">Bad request</response>[Produces("application/json")][ProducesResponseType(StatusCodes.Status201Created)][ProducesResponseType(StatusCodes.Status400BadRequest)][SwaggerResponse(201, "The execution was successful")][SwaggerResponse(400, "The request was invalid")][HttpPost]public ActionResult<T> AddOne(T entity){ try { MainRepo.Add(entity); } catch (Exception ex) { return BadRequest(ex); } return CreatedAtAction(nameof(GetOne), new {id = entity.Id}, entity);}Метод начинается с определения маршрута как запроса
HttpPostCreatedAtAction()LocationМетод DeleteOne()
Удаление записи делается с применением HTTP-метода
DELETEDeleteOne()/// <summary>/// Deletes a single record/// </summary>/// <remarks>/// Sample body:/// <pre>/// {/// "Id": 1,/// "TimeStamp": "AAAAAAAAB+E="/// }/// </pre>/// </remarks>/// <returns>Nothing</returns>