[Consumes("application/json")] // application/xml public IActionResult Post([FromBody] Five model) { try { if (model.Note == null || model.Note.Length < 1) { ModelState.AddModelError("Note", "노트를 입력해야 합니다."); } // 모델 유효성 검사 if (!ModelState.IsValid) { return(BadRequest(ModelState)); // 400 에러 출력 } var m = _repository.Add(model); if (DateTime.Now.Second % 2 == 0) //[!] 둘 중 원하는 방식 사용 { //return CreatedAtAction("GetById", new { id = m.Id }, m); return(CreatedAtRoute("GetById", new { id = m.Id }, m)); // 201 } else { var uri = Url.Link("GetById", new { id = m.Id }); return(Created(uri, m)); // 201 Created } //return Ok(m); // 200 } catch (Exception) { return(BadRequest()); } }
[HttpPut("{id:int}")] // HttpPatch == 부분 업데이트 public IActionResult Put(int id, [FromBody] Five model) // 액션 시그니처를 Dto로 변경 { if (model == null) { return(BadRequest()); } try { var oldModel = _repository.GetById(id); if (oldModel == null) { return(NotFound($"{id}번 데이터가 없습니다.")); } model.Id = id; // * _repository.Update(model); //return Ok(model); // 204 No Content return(NoContent()); // 이미 던져준 정보에 모든 값 가지고 있기에... } catch (Exception) { return(BadRequest("데이터가 업데이트되지 않았습니다.")); } }
/// <summary> /// 수정 /// </summary> public Five Update(Five model) { var query = "Update Fives " + "Set " + " Note = @Note " + "Where Id = @Id "; db.Execute(query, model); return(model); }
/// <summary> /// 입력 메서드, Add, AddXXX, CreateXXX /// </summary> public Five Add(Five model) { string sql = @" Insert Into Fives (Note) Values (@Note); Select Cast(SCOPE_IDENTITY() As Int); "; var id = db.Query <int>(sql, model).Single(); model.Id = id; return(model); }
[Consumes("application/json")] // application/xml public IActionResult Post([FromBody] Five model) // Deserialize, 생성 전용 DTO 클래스 사용 가능 { try { // 예외 처리 방법 if (model == null) { return(BadRequest()); // Status: 400 Bad Request } // 예외 처리 방법 if (model.Note == null || model.Note.Length < 1) { ModelState.AddModelError("Note", "노트를 입력해야 합니다."); } // 모델 유효성 검사 if (!ModelState.IsValid) { return(BadRequest(ModelState)); // 400 에러 출력 } // 데이터베이스에 저장 var m = _repository.Add(model); if (DateTime.Now.Second % 2 == 0) //[!] 둘 중 원하는 방식 사용 { // GetById 액션 이름 사용해서 입력된 데이터 반환 //return CreatedAtAction("GetById", new { id = m.Id }, m); return(CreatedAtRoute("GetFiveById", new { id = m.Id }, m)); // Status: 201 Created } else { var uri = Url.Link("GetFiveById", new { id = m.Id }); return(Created(uri, m)); // 201 Created } //return Ok(m); // 200 } catch (Exception) { return(BadRequest()); } }