Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

3티어 구축을 위한 REST 서버를 쉽고 간단하게 구현 방법 (WebBroker) Part 3


Recommended Posts

REST 서버 구축 Part1 보러가기

REST 서버 구축 Part2 보러가기

클라이언트 앱이 프로젝트 서버에 접속 하기 위해서 사용 하는 URL을  EndPoint 라고 하는데 서버에서 지정 하는 방법을 설명 합니다.

클라인언트 앱이나 웹브라우져에서 미리 정의된 URL로 프로젝트 서버에 접속하면 결과물로 HTML 페이지나 텍스트 등을 전송해 주므로 이를 앱에서 받아 화면에 표시 하거나 원하는 형태로 가공하여 사용 할 수 있게 됩니다.

이때 데이터 형태를 읽어서 처리하기 쉬운 규약을 사용하는데 최근에는 대부분 Json 형태를 사용합니다.

따라서 프로젝트 서버에서는 앱이 요청 할 URL 과 데이터 파라미터를 미리 지정하고 요청 URL에 따라 데이터를 미리 약속된 Json 으로 전송 합니다.

그러므로 프로젝트 서버에서는 EndPoint 을 URL 별로 지정하고 데이터베이스에서 조회 된 데이터를 Json 형태로 만드는 두 가지 작업이 필요 합니다.

먼저 EndPoint를 만든 방법 입니다.

프로젝트의 WebModuleUnit1 컨테이너에서 마우스 우클릭으로 팝업창을 오픈 하여 상단의 Action Editor 메뉴를 실행 합니다.

image.png

 

액션 리스트창에 EndPoint를 URL 단위로 추가 할 수 있습니다.

PathInfo 는 URL의 경로를 의미하므로 앱이 호출하게 되는 URL을 정의 하며 됩니다.

MethodType은 Get 이나 Post 등의 Http Method 방식을 선택 할 수 있는데 개발단계에서는 Any 타입으로 지정하면 브라우져에서 Get 방식으로 URL에 파라미터 까지 같이 넣을 수 있어서 테스트 하기가 수월 합니다.

실제 서비스 단계에서는 보안과 데이터의 범위에 제한이 적은 Post 방식으로 지정 하면 됩니다.

image.png

 

지정된 EndPoint 의 URL에 따라 파라미터가 추가된 형태로 앱이나 브라우져에서 서버에 호출 했을때 데이터를 처리 하는 이벤트는   Action의 이벤트 에서 수행 하면 됩니다.

샘플 소스와 같이 URL 을 http://127.0.0.1:8080/userinfo?id=testid&email=abc@naver.com 로 호출 한다면 id 와 email의 파라미터를 포함 하게 됩니다.

따라서 Action 이벤트 에서 파라미터에 담겨진 데이터를 받아서 처리 할 수 있습니다.

Request.ContentFields.Values['id']; 의 형태로 파라미터를 지정 하면 클라언트가 보낸 데이터를 받아 올 수 있게 됩니다.

// Ex : http://127.0.0.1:8080/userinfo?id=testid&email=abc@naver.com
procedure TWebModule1.WebModule1WebActionItem1Action(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  param1, param2 : string;
begin
  param1 := Request.ContentFields.Values['id'];
  param2 := Request.ContentFields.Values['email'];

  Response.StatusCode := 200;   // 응답 OK
  Response.Content := 'id : ' +  param1 +  ' /  email : ' +  param2;

end;

 

브라우저에서 EndPoint URL 을 호출 하였을때 예시.

image.png

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.