[C#] REST API 만들기
참고 : http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
갑자기 REST 를 게임서버에서 하시는 분은 없겠죠...
이미 여러곳에서 쓰는걸로 알고 있고, 특히 EVE 온라인에서는 외부에 API 를 공개해 유저들이 다양한 정보를 활용, 앱 같은걸 만들 수 있게 사용하고 있습니다.
( eve online. CREST document : https://wiki.eveonline.com/en/wiki/CREST_Documentation )
REST 는 여러 분야에서 사용하고 있으니 Pass...
저는 이걸 어따 쓸려고 하면.. 서버 패치, 실행, 관리 등에 사용할려고 작업중입니다.
각 Agent 의 프로토콜을 REST로 해놓으면 가져다 붙이 좋을꺼라는 생각에..
REST를 구현 하기 위해 Node.js 를 사용했었는데 단점이 있습니다.
1. window api 에 대한 접근이 어려움
2. process 를 관리하기가 힘듬
3. 사용하는 패키지 중에 build 라도 해야 한다면 각 서버마다 build 해야함
어려운건 아니지만 컴파일러를 설치해야 합니다. 적어도 0MQ...
4. process 를 자식으로 생성해서 관리하는데 버그가 있음
평소에는 멀쩡하다 패킷이 몰렸더니 데드락.. detach 하고 node를 죽였더니 풀림...
1. 프로젝트 생성시 ASP.NET 웹 응용프로그램으로 생성하고, 옵션에서 web api를 선택합니다.
2. 요청시 보여주고 싶은 데이터를 Model 폴더에 class 로 생성합니다.
namespace 때문에 굳이 model 폴더에...
3.웹에서 접근할 API 를 만들어 줍니다.
1. 설정하기 나름이지만, 기본적으로 api/Controller이름 을 사용합니다.
2. 컨트롤러 클래스 이름을 PlayerController 로 생성했습니다.
express 버전에서는 이렇게 까지 안만들어 졌던거 같은데....
3. 일단 이대로 빌드하고 실행해도 결과를 확일 할 수 있습니다.
실행하면 IE로 뜨게 되는데 그냥 내비두고, 크롬에서 주소창에 IE에서 보여준 주소 뒤에 /api/Player 를 입력하면 결과를 확일 할 수 있습니다.
굳이 크롬으로 하는 이유는 IE는 JSON 파일을 다운로드 받으려고 하고, 크롬은 XML 로 바로 보여줘서 입니다.
4. 이제 GET 요청시 보내줄 데이터를 위에서 생성한 Player 클래스와 연결해 봅시다.
PlayerController 클래스를 수정합니다.
이제 확인을...
ID 로 요청해 봅니다.
POST 와 DEL 은 확인하려면 Web 페이지도 만들어야 하니 여기까지...
이정도만 만들어두면 어느 웹 or 앱 에서 Request 만해서 똭! 해서 멋진걸 만들수 있습니다.
'In to the C#' 카테고리의 다른 글
C# 6.0 New Features (2) | 2015.01.29 |
---|---|
[C#] Task의 작업완료 (2) | 2014.01.26 |
[C#] Action, Func 그리고 Task (0) | 2014.01.26 |
[C#] Attribute : 속성 (0) | 2014.01.24 |
Lazy Initialization (0) | 2014.01.20 |