RESTFull 웹서비스 등록방법
구분 | 팁&트릭 |
---|---|
출처 | 내가작성 |
환경: VS2013 / .NET 4.5 / C#
1. 새 프로젝트를 추가한다.
위 그림처럼 "ASP.NET 웹 응용 프로그램"을 선택한다. 여기서 닷넷 버전을 변경(3.5, 4.0)을 변경하게 되도 선택이 가능하긴 한데 화면이 달라진다.
4.0의 경우 2번화면 없이 소스가 구성되었었다. 여기서는 닷넷 4.5기반으로 설명한다.
2. Web API를 선택한다.
애저서비스를 받는 다면 체크해도되지만 없으면 창하나가 더 뜬다. 여기서는 해제하는 것으로 한다.
3. 프로젝트 구성을 자동으로 만들어준다.
ASP.NET 기반이기 때문에 화면들을 자동으로 생성해주는 부분이다. 우리는 RESTfull 웹서비스만 사용할 것이기 때문에 다른 것은 건드리지 않고
위 그림에 표시된 Models와 Controllers만 건드릴 예정이다.
1) Models 은 데이터를 담을 그릇. 즉 클래스를 넣어두는 곳이다.
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebApplication1.Models { public class UserLogin { public string UserID { get; set; } public string UserPwd { get; set; } public string UserName { get; set; } } }
대충 이렇게 만들어보자. 우측 클릭해서 새아이템-클래스 ... 생성하는 식으로 만들면 된다.
2) Controllers 는 http에서 처리되는 부분을 기술하는 부분이다.
콘트롤러 폴더에 우측클릭해서 추가하면 팝업 맨 위에 "콘트롤러"가 있는데 이것을 클릭한다.
또 어마무시한 화면이 하나 뜬다. 다 무시하고 "WebAPI2 컨트롤러 - 비어있음"을 선택하고 추가한다.
(다른 옵션들도 다 해봐야 하는데 시간이 없다. 내일 해봐야지 T_T)
이름을 적당하게 지어준다.
필자는 UserLoginController로 지어주었다. 그리고 아래와 같이 코딩..
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; using WebApplication1.MariaDBQuery; using WebApplication1.Models; namespace WebApplication1.Controllers { public class UserLoginController : ApiController { SQLQuery sQuery = new SQLQuery(); UserLogin[] userLogin = new UserLogin[] { new UserLogin { UserID = "soft1", UserPwd = "pwd", UserName = "홍길동" }, new UserLogin { UserID = "soft2", UserPwd = "pwd", UserName = "홍길순" }, new UserLogin { UserID = "soft3", UserPwd = "pwd", UserName = "홍길철" } }; public IEnumerable<UserLogin> GetAllUser() <-- 이것 자체가 API가 된다. 이건 전체목록 뿌리기 { return userLogin; } public UserLogin GetLogin(string UserID, string UserPWD) <-- 이건 파라미터 입력받아 뿌리기 { var result = userLogin.FirstOrDefault((p) => p.UserID == UserID); if (result == null) { throw new HttpResponseException(HttpStatusCode.NotFound); } return result; } } }이제 돌려보자.기본 브라우저가 익스플로러인 경우 JSON으로 파일받기 창이 뜨고 구글크롬인 경우 XML로 직접 브라우저에서 보여주니 참고하자.
필자는 크롬이다.
기본적으로 예전버전(SOAP)에 비해 디자인이 세련되고 심플한 페이지다. 상단의 API메뉴를 클릭한다.
많은 API들이 나오는데 우리가 지금 만든 것은 맨 아래에 있다. 알파벳 순이라 맨 밑에 있는 거일듯하다.
자 테스트 방법은 http://localhost:1158/api/UserLogin 이런식으로 가져다 붙이면 된다.
즉 이방식으로하면 URL에 파라미터가 다 보이는 방식인 것이다. 흠냐..
파라미터 안보이는 방식은 없을까? T_T
자 SOAP때처럼 결과가 나왔다.
내일은 이걸 웹참조해서 사용하는 방법을 해봐야겠다.