예제 #1
0
        [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());
            }
        }
예제 #2
0
        [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());
            }
        }