[.NET Core 2.x] REST API + MySQL
MySQL을 연동 후 GET/POST/PUT/DELETE Http Mehtod를 이용해보기
-> 각 개념은 다음 글 참고 (http://happynotepad.tistory.com/6?category=784579)
MySQL 연동, Context 및 Model class setting은 다음 글 참고
-> http://happynotepad.tistory.com/8?category=784579
Http Call을 정의하기 위한 Controller 생성
testController.cs [Route("api/[controller]")]
public class IsOpenController : Controller
{
private readonly IsOpenContext _isOpenContext; public IsOpenController(IsOpenContext isOpenContext)
{
_isOpenContext = isOpenContext;
} // GET api/values
[HttpGet]
public IEnumerable<OpenResponse> GetAll()
{
return _isOpenContext.OpenResponse.ToList();
} [HttpGet("{id}")]
public OpenResponse GetById(int id)
{
var item = _isOpenContext.OpenResponse.FirstOrDefault(o => o.id == id);
if (item == null)
{
return null;
}
return item;
} [HttpPost]
public IEnumerable<OpenResponse> AddItem([FromBody] OpenResponse item)
{
if (item == null)
{
return _isOpenContext.OpenResponse.ToList();
} _isOpenContext.OpenResponse.Add(item);
_isOpenContext.SaveChanges(); return _isOpenContext.OpenResponse.ToList();
} [HttpPut("{id}")]
public OpenResponse UpdateItemByid(int id, [FromBody] OpenResponse item)
{
if (item == null)
{
return null;
} var updatedItem = _isOpenContext.OpenResponse.FirstOrDefault(o => o.id == id);
if (updatedItem == null)
{
return null;
}
updatedItem.id = item.id;
updatedItem.isOpened = item.isOpened;
_isOpenContext.OpenResponse.Update(updatedItem);
_isOpenContext.SaveChanges(); return updatedItem;
} [HttpDelete("{id}")]
public IEnumerable<OpenResponse> DeleteItemById(int id)
{
var item = _isOpenContext.OpenResponse.FirstOrDefault(o => o.id == id);
if (item == null)
{
return _isOpenContext.OpenResponse.ToList();
} _isOpenContext.OpenResponse.Remove(item);
_isOpenContext.SaveChanges();
return _isOpenContext.OpenResponse.ToList();
}
} |
- C# 라이브러리의 Cotroller class를 상속받아 사용
- 객체 생성 시 context 인자를 받아옴
- context class 내에 선언 되어있는 Dbset을 통해 DB와 데이터를 주고 받음
[Enumerable.FirstOrDefault]
- Enumerable 내에서 조건에 맞는 첫 번재 요소를 반환 한다.
[Enumerable.Add]
- Enumerable 내에 Item을 추가 해 준다.
[DbContext.SaveChanges]
- 현재 context에서 변화된 것을 DB에 모두 저장한다.
[Enumerable.Update]
- Enumerable 내에 변화된 Item을 업데이트 해준다.
[Enumerable.Remove]
- Enumerable 내에서 해당 item을 삭제해준다.
[Route("api/[controller]")
- Api의 URL을 정의하고 있다.
- [controller]의 경우 controller class의 앞 부분?에 해당한다.
( testController class 라면 test에 해당)
- ex) http://localhost/api/test/
- Route를 수정하여 커스텀하게 URL을 정의 할 수 있다.
[실행 및 확인해보기]
- F5를 눌러 실행
- 각 Method에 대하여 확인해보기
ex)
- 실제 DB에 변화가 있는지 DB 확인 해보기