Version dev
This is a preliminary version of the documentation. Help us to improve it by filling tickets. We are looking for native english speakers to proof read the documentation. Contact us!
module Eliom_parameters:This module defines the values used to declare the type of service parameters.sig..end
unit for a service without parameter.(int "myvalue") for a service that takes one parameter, of type int, called "myvalue". (The service handler function takes a parameter of type int).(int "myvalue" ** string "mystring") for a service that takes two parameters, one of type int called "myvalue", and one of type string called "mystring". (The service handler function takes a parameter of type (int * string)).(opt (int "myvalue")) for a service that takes an optional parameter of type int called "myvalue". (The handler function takes a parameter of type int option).(set int "myvalue") for a service that takes any number of integer parameters, all called "myvalue". (The handler function takes a parameter of type int list).list "l" (int "myvalue" ** string "mystring") for a service taking a list of pairs. (The handler takes a parameter of type (int * string) list).any in suffixes), but it would make the types of parameters andservices more complicated. We believe that these errors should be easyto find during implementation.type ('a, +'b, +'c) params_type 'typ is the type of the parameter (taken by the service handler) 'suff is a polymorphic variant type telling the type of parameter (suffix or not ...) 'name is the type of the parameter name (usually using Eliom_parameters.param_name)type 'a param_name Eliom_predefmod.XHTMLFORMSSIG.get_form). The names of parameters are not just strings to enforce using forms widgets with the right parameter type. The parameter of that type is often a subtype of the polymorphic variant type [ `Set of 'a | `One of 'a | `Opt of 'a ], where`Set of 'a means: any number of 'a`One of 'a means: exactly one 'a`Opt of 'a means: zero or one 'atype'asetoneradio =[ `One of 'a | `Radio of 'a | `Set of 'a ]
Eliom_predefmod.XHTMLFORMSSIG.int_input that may be used against services expecting one parameter of that name, or services expecting an optional parameter of that name, or services expecting any number of parameters of that name.type'aoneradio =[ `One of 'a | `Radio of 'a ]
Eliom_predefmod.XHTMLFORMSSIG.int_image_input that may be used against services expecting one parameter of that name or services expecting an optional parameter of that name.type'asetone =[ `One of 'a | `Set of 'a ]
Eliom_predefmod.XHTMLFORMSSIG.int_button that may be used against services expecting one parameter of that name, or services expecting any number of parameters of that name.type ('a, 'b) binsum = | | Inj1 of | |||
| | Inj2 of | (* | Type used for parameters of type bynary sum | *) |
type 'a listnames = { | it : |
val int : string ->
(int, [ `WithoutSuffix ], [ `One of int ] param_name)
params_typeint s tells that the service takes an integer as parameter, labeled s.val int32 : string ->
(int32, [ `WithoutSuffix ], [ `One of int32 ] param_name)
params_typeint32 s tells that the service takes a 32 bits integer as parameter, labeled s.val int64 : string ->
(int64, [ `WithoutSuffix ], [ `One of int64 ] param_name)
params_typeint64 s tells that the service takes a 64 bits integer as parameter, labeled s.val float : string ->
(float, [ `WithoutSuffix ], [ `One of float ] param_name)
params_typefloat s tells that the service takes a floating point number as parameter, labeled s.val string : string ->
(string, [ `WithoutSuffix ], [ `One of string ] param_name)
params_typestring s tells that the service takes a string as parameter, labeled s.val bool : string ->
(bool, [ `WithoutSuffix ], [ `One of bool ] param_name)
params_typebool s tells that the service takes a boolean as parameter, labeled s. (to use for example with boolean checkboxes)val file : string ->
(Ocsigen_lib.file_info, [ `WithoutSuffix ],
[ `One of Ocsigen_lib.file_info ] param_name)
params_typefile s tells that the service takes a file as parameter, labeled s.val unit : (unit, [ `WithoutSuffix ], unit) params_typeval user_type : of_string:(string -> 'a) ->
to_string:('a -> string) ->
string ->
('a, [ `WithoutSuffix ], [ `One of 'a ] param_name)
params_typeuser_type t_of_string string_of_t s tells that the service take a parameter, labeled s, and that the server will have to use t_of_string and string_of_t to make the conversion from and to string.type coordinates = { | abscissa : |
| ordinate : |
coordinates is for the data sent by an <input type="image" ...>.val coordinates : string ->
(coordinates, [ `WithoutSuffix ],
[ `One of coordinates ] param_name)
params_typestring s tells that the service takes as parameters the coordinates of the point where the user were clicked on an image.val string_coordinates : string ->
(string * coordinates, [ `WithoutSuffix ],
[ `One of string * coordinates ]
param_name)
params_type<input type="image" value="..." ...>) (Here a string)val int_coordinates : string ->
(int * coordinates, [ `WithoutSuffix ],
[ `One of int * coordinates ] param_name)
params_typeval int32_coordinates : string ->
(int32 * coordinates, [ `WithoutSuffix ],
[ `One of int32 * coordinates ] param_name)
params_typeval int64_coordinates : string ->
(int64 * coordinates, [ `WithoutSuffix ],
[ `One of int64 * coordinates ] param_name)
params_typeval float_coordinates : string ->
(float * coordinates, [ `WithoutSuffix ],
[ `One of float * coordinates ] param_name)
params_typeval user_type_coordinates : of_string:(string -> 'a) ->
to_string:('a -> string) ->
string ->
('a * coordinates, [ `WithoutSuffix ],
[ `One of 'a * coordinates ] param_name)
params_typeval ( ** ) : ('a, [ `WithoutSuffix ], 'b) params_type ->
('c, [< `Endsuffix | `WithoutSuffix ] as 'd, 'e) params_type ->
('a * 'c, 'd, 'b * 'e) params_typeval prod : ('a, [ `WithoutSuffix ], 'b) params_type ->
('c, [< `Endsuffix | `WithoutSuffix ] as 'd, 'e) params_type ->
('a * 'c, 'd, 'b * 'e) params_type** aboveval sum : ('a, [ `WithoutSuffix ], 'b) params_type ->
('c, [ `WithoutSuffix ], 'd) params_type ->
(('a, 'c) binsum, [ `WithoutSuffix ], 'b * 'd)
params_typeval opt : ('a, [ `WithoutSuffix ], 'b) params_type ->
('a option, [ `WithoutSuffix ], 'b) params_typeval radio : (string ->
('a, [ `WithoutSuffix ], [ `One of 'b ] param_name)
params_type) ->
string ->
('a option, [ `WithoutSuffix ], [ `Radio of 'b ] param_name)
params_typeopt but works only for one single parameter.val any : ((string * string) list, [ `WithoutSuffix ], unit)
params_typeval set : (string ->
('a, [ `WithoutSuffix ], [ `One of 'b ] param_name)
params_type) ->
string ->
('a list, [ `WithoutSuffix ], [ `Set of 'b ] param_name)
params_typeset int "i" will match the parameter string i=4&i=22&i=111 and send to the service handler a list containing the three integers 4, 22 and 111. The order is unspecified.val list : string ->
('a, [ `WithoutSuffix ], 'b) params_type ->
('a list, [ `WithoutSuffix ], 'b listnames)
params_typeEliom_parameters.listnames is given to generate the name for each value.val regexp : Netstring_pcre.regexp ->
string ->
to_string:(string -> string) ->
string ->
(string, [ `WithoutSuffix ], [ `One of string ] param_name)
params_typeregexp r d s tells that the service takes a string that matches the regular expression r as parameter, labeled s, and that will be rewritten in d. The syntax of regexp is PCRE's one (uses Netstring_pcre, from OCamlnet). For example: regexp (Netstring_pcre.regexp "\[(.* )\]") "($1)" "myparam" will match the parameter myparam=[hello] and send the string "(hello)" to the service handler.val suffix : ?redirect_if_not_suffix:bool ->
('a, [< `Endsuffix | `WithoutSuffix ], 'b) params_type ->
('a, [ `WithSuffix ], 'b) params_typesuffix (int "i" ** string "s") will match an URL ending by 380/yo. and send (380, "yo") to the service handler. For each service with suffix, there is also a service with regular parameters (without suffix) that will be used if you create a form towards a service with suffix. If redirect_if_not_suffix is true (default), this service without suffix will be redirected to the suffix version.
val all_suffix : string ->
(string list, [ `Endsuffix ],
[ `One of string list ] param_name)
params_typeval all_suffix_string : string ->
(string, [ `Endsuffix ], [ `One of string ] param_name)
params_typeval all_suffix_user : of_string:(string -> 'a) ->
to_string:('a -> string) ->
string ->
('a, [ `Endsuffix ], [ `One of 'a ] param_name)
params_typeval all_suffix_regexp : Netstring_pcre.regexp ->
string ->
to_string:(string -> string) ->
string ->
(string, [ `Endsuffix ], [ `One of string ] param_name)
params_typeall_suffix_regexp r d s takes all the suffix, as long as possible, matching the regular expression r, name s, and rewrite it in d.val suffix_prod : ?redirect_if_not_suffix:bool ->
('a, [< `Endsuffix | `WithoutSuffix ], 'b) params_type ->
('c, [ `WithoutSuffix ], 'd) params_type ->
('a * 'c, [ `WithSuffix ], 'b * 'd) params_typesuffix_prod (int "suff" ** all_suffix "endsuff") (int "i") will match an URL ending by 777/go/go/go?i=320 and send the value ((777, ["go";"go";"go"]), 320) to the service handler.val suffix_const : string ->
(unit, [ `WithoutSuffix ], [ `One of unit ] param_name)
params_typesuffix_const v is used only inside suffixes (do nothing for regular parameters). It tells that the service takes a constant parameter inside the suffix, whose value must be v. It is used for putting constant directory names inside suffix parameters (and thus make suffix parameters not be only suffixes but anywhere you want in the path, e.g. /param1/const/param2).type ('a, +'b, +'c) non_localized_params val make_non_localized_parameters : prefix:string ->
name:string ->
?persistent:bool ->
('a, [ `WithoutSuffix ], 'b) params_type ->
('a, [ `WithoutSuffix ], 'b) non_localized_params Will fail with exception Failure _ if the name contains a dot. If ?persistent is true, the non localized parameter may remain if you call another service, if this service allows this (default false).
val get_non_localized_get_parameters : sp:Eliom_sessions.server_params ->
('a, [ `WithoutSuffix ], 'b) non_localized_params ->
'a optionget_non_localized_get_parameters ~sp p decodes and returns non localized GET parameters specified by p if present.val get_non_localized_post_parameters : sp:Eliom_sessions.server_params ->
('a, [ `WithoutSuffix ], 'b) non_localized_params ->
'a optionget_non_localized_post_parameters ~sp p decodes and returns non localized POST parameters specified by p if present.type nl_params_set val empty_nl_params_set : nl_params_setval add_nl_parameter : nl_params_set ->
('a, [< `WithSuffix | `WithoutSuffix ], 'b)
non_localized_params -> 'a -> nl_params_setval get_nl_params_names : ('a, [< `WithSuffix | `WithoutSuffix ], 'b)
non_localized_params -> 'b