DavidI  블로그 글을 번역한 것입니다.

 

·         본문 링크 :https://community.idera.com/developer-tools/b/blog/posts/rad-server-mapping-web-properties-to-folders

RAD 서버 : 웹 속성을 폴더에 매핑하기

엠바카데로 아카데미 RAD 서버 과정에서 "델파이와 RAD서버로 서비스 기반 솔루션 설계-빌드-디버그-배포까지" , "C++빌더와 RAD서버로 서비스 기반 솔루션 설계-빌드-디버그-배포까지"과정들은 개발자들에게 애플리케이션의 리소스 엔드 포인트에서 JavaScript, HTML, 이미지, CSS 및 기타 웹 자산 파일과 코드를 통합하는 방법을 보여줍니다.

 

RAD 서버 구성 파일(emserver.ini) 섹션에는 [Server.PublicPaths]라는 레이블이 있는데 웹 콘텐츠의 공용 경로 설정에 대한 정보와 예제가 포함되어 있습니다. 서버 공용 경로 항목에는  등호 앞에 고유 한 임의의 이름이 있습니다 JSON 기반 항목은 컴퓨터 디렉토리를 RAD 서버 애플리케이션이 사용할 수 있는 웹 정보 타입에 매핑합니다. 각 항목에는 "경로": "값", 파일이 있는 디렉토리, 검색 시 전달할 기본 파일(옵션),  MIME 파일 형식 마스크 배열(옵션), 파일 확장자의 배열(옵션), 디렉토리에서 파일에 대한 옵션인 인코딩  문자 집합 이 있습니다.

 

예를 들어 [Server.PublicPaths] 섹션의 RAD 서버 구성 파일에 대한  경로 항목은 다음과 같습니다. 

 

Path1={"path": "images", "directory": "C:\\WebAssets\\images\\", "default": "index.html", "mimes": ["image/*"]}
Path2={"path": "content", "directory": "C:\\WebAssets\\content\\", "default": "index.html", "extensions": ["js", "html", "css"]}

 

C : \ WebAssets \ Content 및 C : \ WebAssets \ Images 디렉토리를 생성하십시오. 다음과 같은 HTML을 포함하는 index.html 파일을 C : \ WebAssets \ Content 디렉토리에 작성하십시오.

 

<!DOCTYPE html>

<html>

<head>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js">

</script>

<script>

$(document).ready(function(){

$("button").click(function(){

$.ajax({url: "/WebProperties", success: function(result){

$("#div1").html(result);

}});

});

});

</script>

</head>

<body>

<h2>RAD Server JS + Service</h2>

<button>Get RAD Server Content</button>

<P></p>

<div id="div1">RAD Server GET method result will appear here</div>

</body>

</html>

 

Get 및 GetItem 엔드 포인트 구현을 위해 다음 코드를 추가하십시오.(원본에는 C++ 소스도 있습니다.)

 

unit ResourceUnit;

 

// EMS Resource Module

 

interface

 

uses

  System.SysUtils, System.Classes, System.JSON,

  EMS.Services, EMS.ResourceAPI, EMS.ResourceTypes;

 

type

  [ResourceName('WebProperties')]

  TWebPropertiesResource1 = class(TDataModule)

  published

    procedure Get(const AContext: TendpointContext;

const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

    [ResourceSuffix('{item}')]

    procedure GetItem(const AContext: TendpointContext;

const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

  end;

 

implementation

 

{%CLASSGROUP 'System.Classes.TPersistent'}

 

{$R *.dfm}

 

procedure TWebPropertiesResource1.Get(const AContext: TendpointContext;

const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

begin

  Aresponse.Body.SetValue(TJSONString.Create(

    'WebProperties get method called at ' + TimeToStr(Now)), True)

end;

 

procedure TWebPropertiesResource1.GetItem(const AContext: TEndpointContext; const ARequest: TEndpointRequest; const AResponse: TEndpointResponse);

var

  LItem: string;

begin

  LItem := ARequest.Params.Values['item'];

  AResponse.Body.SetValue(TJSONString.Create('WebProperties ' + LItem), True)

end;

 

procedure Register;

begin

  RegisterResource(TypeInfo(TWebPropertiesResource1));

end;

 

initialization

  Register;

end.

 

RAD 서버 프로젝트를 컴파일하고 URL에 대해 localhost : <port #> / Content를 사용하여 브라우저 열기 버튼을 클릭하십시오. 브라우저에 index.html 파일이 나타납니다.

 

pastedimage1584125485308v1.png-320x240.png

 

버튼을 클릭하여 Get 엔드 포인트를 호출하고 결과를 확인하십시오.

 

pastedimage1584125512498v2.png-320x240.png

RAD Server 엠바카데로 과정에 등록하여 3 시간 이상의 강의를 보고 과정 노트를 읽고 예제 프로젝트를 해 볼 수 있습니다. RAD Server, 델파이 또는 C++ 빌더의 Enterprise, Architect 또는 시험판이 필요합니다.

 

pastedimage1584125591523v3.png-320x240.png

 

pastedimage1584125611808v4.png-320x240.png

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 22450
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20975
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 23046
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28825
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 30024
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25375
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46316
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 182148
1183 [고객사례-사물인터넷, 앱, 델파이] 로봇청소기 제어 앱 '니토 툴리오' 관리자 2020.03.24 465
1182 RAD Studio 10.3.3 안드로이드 앱에서 센서 컴포넌트 사용시 링크 오류 해결방법 김원경 2020.03.18 373
1181 [델파이 안드로이드 64비트 오류 수정] TInAppPurchase 컴포넌트 수정 file 김원경 2020.03.18 380
1180 [기술백서] 다양한 팀 '협업' 방법론과 개발 방식 관리자 2020.03.18 680
1179 RAD Studio IDE에 툴 추가하기 file 김원경 2020.03.17 376
» RAD 서버 : 웹 속성을 폴더에 매핑하기 file 김원경 2020.03.17 1582
1177 델파이 개발자 관점에서 본 윈도우 개발 file 김원경 2020.03.13 763
1176 C++ 언어와 C++빌더의 23년! 관리자 2020.03.13 627
1175 MS 비주얼 스튜디오 C++을 C++빌더와 함께 활용하기 관리자 2020.03.12 658
1174 Swagger / YAML 및 RESTful API의 자체 문서화 김원경 2020.03.11 1803
1173 [고객사례-유틸리티, 델파이] Navuu 관리자 2020.03.09 401
1172 [고객사례-유틸리티, 델파이] SupRemo - 개인방송, 화상회의 솔루션 관리자 2020.03.09 916
1171 RAD 서버에 Swagger UI 임베이딩 김원경 2020.03.09 599
1170 검사(Audits)와 측정(Metrics) 기능을 이용 소스코드 표준과 규약 준수를 측정하고 개선할 수 있습니다. 험프리 2020.03.06 310
1169 TEMSDataSetResource 컴포넌트를 사용하여 RAD 서버의 마스터-디테일 데이터 구현하기 file 김원경 2020.03.06 462
1168 RESTful 마스터-디테일 데이터를 사용하는 클라이언트 애플리케이션을 TRESTResponseDataSetAdapter를 사용하여 개발하기 file 험프리 2020.03.03 645
1167 [10.4 프리뷰] 베타 서비스 시작 & 새 기능 미리 보기 관리자 2020.03.03 1668
1166 델파이 25주년 기념 무료 크로스 플랫폼 샘플 앱 25개 선정(델파이/C++ 샘플 150여종) 험프리 2020.03.02 690
1165 윈도우 10에서의 High DPI 김원경 2020.03.02 1401
1164 이 달의 기술자료 - 2020년 03월 file 험프리 2020.02.28 319