본문 바로가기
다물칸 주소복사
조회 수 84 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
구분 팁&트릭
출처 내가작성

환경: VS2013 / .NET 4.5 / C#


1. 새 프로젝트를 추가한다. 

20150720_174016.png


위 그림처럼 "ASP.NET 웹 응용 프로그램"을 선택한다. 여기서 닷넷 버전을 변경(3.5, 4.0)을 변경하게 되도 선택이 가능하긴 한데 화면이 달라진다. 

4.0의 경우 2번화면 없이 소스가 구성되었었다. 여기서는 닷넷 4.5기반으로 설명한다. 


2. Web API를 선택한다. 

20150720_174100.png

애저서비스를 받는 다면 체크해도되지만 없으면 창하나가 더 뜬다. 여기서는 해제하는 것으로 한다. 


3. 프로젝트 구성을 자동으로 만들어준다. 

20150720_174554.png

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 { getset; }
        public string UserPwd { getset; }
        public string UserName { getset; }
    }
}
대충 이렇게 만들어보자. 우측 클릭해서 새아이템-클래스 ... 생성하는 식으로 만들면 된다. 

2) Controllers 는 http에서 처리되는 부분을 기술하는 부분이다. 
콘트롤러 폴더에 우측클릭해서 추가하면 팝업 맨 위에 "콘트롤러"가 있는데 이것을 클릭한다.
20150720_175125.png

또 어마무시한 화면이 하나 뜬다. 다 무시하고 "WebAPI2 컨트롤러 - 비어있음"을 선택하고 추가한다.

(다른 옵션들도 다 해봐야 하는데 시간이 없다. 내일 해봐야지 T_T)


20150720_175138.png

이름을 적당하게 지어준다.

필자는 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로 직접 브라우저에서 보여주니 참고하자.

필자는 크롬이다.

20150720_175850.png

기본적으로 예전버전(SOAP)에 비해 디자인이 세련되고 심플한 페이지다. 상단의 API메뉴를 클릭한다.

20150720_175928.png

많은 API들이 나오는데 우리가 지금 만든 것은 맨 아래에 있다. 알파벳 순이라 맨 밑에 있는 거일듯하다.


자 테스트 방법은 http://localhost:1158/api/UserLogin 이런식으로 가져다 붙이면 된다.


즉 이방식으로하면 URL에 파라미터가 다 보이는 방식인 것이다. 흠냐..

파라미터 안보이는 방식은 없을까? T_T


20150720_180328.png

자 SOAP때처럼 결과가 나왔다.


내일은 이걸 웹참조해서 사용하는 방법을 해봐야겠다.