eliom
11.1.1
Eliom은 OCAML에서 클라이언트/서버 웹 및 모바일 애플리케이션을 구축하기위한 프레임 워크입니다.
기존 서버 측 웹 프레임 워크 또는 복잡한 클라이언트 서버 응용 프로그램을 구현하는 데 사용할 수 있습니다.
Eliom은 OCAML을 다층 언어로 변환하여 웹 및 모바일 앱의 서버 및 클라이언트 부분을 단일 프로그램으로 구현할 수 있습니다.
이것은 서버와 클라이언트 간의 통신을 많이 단순화합니다. 응용 프로그램은 모든 웹 브라우저 또는 모바일 장치 (iOS, Android)에서 실행될 수 있으며 각 플랫폼마다 하나의 버전을 개발해야 할 필요성에서 절약 할 수 있습니다.
Eliom은 반응 페이지 (서버 또는 클라이언트에서 생성), 고급 세션 메커니즘, 서버 대 클라이언트 통신, 연속 기반 웹 프로그래밍 등을 지원합니다.
Eliom은 Ocsigen 프로젝트의 일부입니다.
opam install eliom
Path /foo 에서 서비스 정의, GET 매개 변수 가져 오기 :
let myservice =
Eliom_service. create
~path: ( Eliom_service. Path [ " foo " ])
~meth: ( Eliom_service. Get ( Eliom_parameter. any))
()
let () =
Eliom_registration.Html. register ~service: myservice
( fun get_params () ->
Lwt. return
Eliom_content.Html.F. (html (head (title (txt " " )))
(body [h1 [txt " Hello " ]])))매개 변수와 함께 해당 서비스에 대한 링크 삽입 :
Eliom_content.Html.D. a ~service: myservice [txt " Home " ] [( " param1 " , " v1 " ); ( " param2 " , " v2 " )]이벤트 핸들러는 OCAML로 작성됩니다.
div ~a: [a_onclick [ % client ( fun ev -> ... )]] [ ... ]클라이언트 측 및 서버 측은 단일 프로그램으로 작성됩니다.
let % server a = ... (* code for the server part of the application *)
let % client b = ... (* code for the client part of the application *)
let % shared c = ... (* code that will be included in both parts *)클라이언트 측 코드에서 서버 측 값 사용 :
let % server a = ...
let % client f () =
print_endline ~% a ; (* print in browser console *)
...클라이언트 프로그램에서 서버 기능 호출 :
let % rpc f (x : int ) : string Lwt. t = ... (* server-side code *)
let % client () =
let % lwt r = f 4 in
...Eliom 참조를 사용하여 서버에 세션 데이터 저장 :
let % server r = Eliom_reference. eref ~scope: Eliom_common. default_session_scope 0
let % server f () =
let % lwt v = Eliom_reference. get r in
Eliom_reference. set r (v + 1 );
...
스코프는 다음과 같습니다.
Eliom_common.default_session_scope (각 브라우저마다 다른 값),Eliom_common.default_process_scope (각 탭마다 다른 값),Eliom_common.default_group_scope (각 사용자마다 다른 값),Eliom_common.site_scope (전체 사이트의 값),Eliom_common.global_scope (전체 서버의 글로벌 값). ELIOM 참조는 옵션 매개 변수를 추가하면 Eliom_reference.eref 기능하기 위해 ~persistent 추가하는 경우 지속됩니다. 여기에 더 많은 문서가 있습니다.
Ocsigen Start를 사용하여 Eliom으로 첫 번째 웹 및 모바일 응용 프로그램 작성