рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд╣реБрдд рдкрд╣рд▓реЗ рдореИрдВ рдПрд░рд▓рд╛рдВрдЧ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЕрд╡рд╕рд░ рдкрд░ рдЖрдпрд╛ рдерд╛ред рдпрджрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд╛рдо рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рдЯреНрдпреВрдкрд▓ рдкрд╛рд╕ рдХрд░реЗрдВ рдЬрд╣рд╛рдВ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдирд╛рдо рд╣реИ, рддреЛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛
arity рдХреЛ рдПрдХ рдФрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрд┐рдо рддрд░реНрдХ рд╕рдорд╛рди рдЯреНрдпреВрдкрд▓ рд╣реЛрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
-module(my_module). -export([test/2]). test(Arg1,{?MODULE,Arg2}) -> io:format("Arg1:~p~nArg2:~p~n",[Arg1,Arg2]).
рдЖрдк рдЗрд╕ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
my_module:test(1,{my_module,2}).
рдпрд╛ рддреЛ
{my_module,2}:test(1).
рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрдЯ рдбреЗрдЯрд╛ рдЯрд╛рдЗрдкреНрд╕ (рдбреЗрдЯрд╛ рдореЙрдбрд▓) рдмрдирд╛рддреЗ рд╕рдордп рдЬрд╣рд╛рдВ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЯрдкрд▓ рдореЗрдВ рдЬрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдпрд╛,
рд░рд┐рдХреЙрд░реНрдб -рдИ рдореЗрдВ рдФрд░ рднреА рдЖрд╕рд╛рдиреА рд╕реЗ,)ред
-module(user). -export([new/0,save/1]). -export([name/1,set_name/1]). -export([proplist/1]).
рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬреЛ рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
{ok,User} = user:new(), {ok,User2} = User:set_name("SomeName"), {ok,User3} = User2:save(), UserName = User3:name().
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╡рд┐рдЪрд╛рд░ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╢реИрд▓реА рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдПрд░реНрд▓реИрдВрдЧ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛,
рдбрд╛рдпрд▓рд╛рдЗрдЬрд╝рд░ рдХреЛрдб рдХрд╛ рд╕реНрдереИрддрд┐рдХ рд╕рддреНрдпрд╛рдкрди
рдЬрдЯрд┐рд▓ рд╣реИ ред рд╕рд╛рде рд╣реА, рдпрд╣ рдХреЛрдб рдЗрд╕рд╕реЗ рдЕрд▓рдЧ рд╣реИ
{ok,User} = user:new(), {ok,User2} = user:set_name("SomeName",User), {ok,User3} = user:save(User2), UserName = user:name(User3).
рдХреЗрд╡рд▓ рд╡рд░реНрдгреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдЗрд╕рд▓рд┐рдП, рдореИрдВ рд╣рд░ рдЬрдЧрд╣ рдЗрд╕рдХрд╛
рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ
рдХреА рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рджреЗрддрд╛ ред
рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдПрдХ рд╕рд╛рд░ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдкрд░ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рдХрд╛рд░рдг рдХрд┐рдпрд╛, рдЗрд╕реЗ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд┐рдЫрд▓реЗ рдореЙрдбрд▓ рдореЗрдВ,
proplist () рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ)ред
рдПрдХ RESTful рд╕реЗрд╡рд╛ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╕рдордп, рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╡рд╛рдкрд╕ рд▓реМрдЯрддреЗ рд╕рдордп, рдЙрдиреНрд╣реЗрдВ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╣ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рджрд┐рдП рдЧрдП рдореЙрдбрд▓ рдХрд┐рд╕ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╣реИрдВред
to_json(Resource) -> Proplist = Resource:proplist(), Json = mochijson2_fork:encode({struct,[Proplist]}), {ok,Json}. to_xml(Resource) -> Proplist = Resource:proplist(), XML = SomeProplistToXmlGenerator(Proplist), {ok,XML}.