÷ÌÁÄÉÍÉÒ, ÄÏÂÒÙÊ ÄÅÎØ.
÷ÏÚÍÏÖÎÏ ÌÉ ÒÅÁÌÉÚÏ×ÁÔØ ÍÅÈÁÎÉÚÍ ÄÌÑ ÏÂÒÁÂÏÔËÉ HTTP ÚÁÐÒÏÓÏ× Ó ÐÏÍÏÝØÀ CG/PL ÐÒÏÇÒÁÍÍ? îÁÐÒÉÍÅÒ ÔÁË:
1. ÷ ÎÁÓÔÒÏÊËÁÈ HTTP ÍÏÄÕÌÑ ÄÏÂÁ×ÌÑÅÔÓÑ ÎÁÓÔÒÏÊËÁ "CG/PL Applications":
CG/PL Common URL Prefix: /cgpl
CG/PL Account URL Prefix: /cgpl
URL Task
acd/queuestate acd.ajaxui.getqueuestate
acd/queuecmd acd.ajaxui.issuequeuecmd
~/conf/userlist personalconference.ajaxui.getuserlist
...
2. ðÒÉ ÚÁÐÒÏÓÅ ÎÁ URL http://server/cgpl/acd/queuestate ÉÌÉ
http://server/~username/cgpl/conf/userlist ÚÁÐÕÓËÁÅÔÓÑ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÁÑ
ÚÁÄÁÞÁ, ËÏÔÏÒÁÑ ÐÏÌÕÞÁÅÔ ÎÁ ×ÈÏÄ ÓÌÏ×ÁÒØ Ó ÚÁÐÒÏÓÏÍ
(Vars().httpRequest). úÁÄÁÞÁ ÚÁÐÕÓËÁÅÔÓÑ × ÓÐÅÃÉÁÌØÎÏÍ ÒÅÖÉÍÅ, ÆÕÎËÃÉÉ,
ËÏÔÏÒÙÅ Ó×ÑÚÁÎÙ Ó ÏÂÒÁÂÏÔËÏÊ ÓÉÇÎÁÌÏ×, ÂÕÄÕÔ ×ÏÚ×ÒÁÝÁÔØ ÏÛÉÂËÉ, ÎÏ ÐÒÉ
ÜÔÏÍ ÚÁÄÁÞÁ ÍÏÖÎÏ ÓÔÁÒÔÏ×ÁÔØ ÄÒÕÇÉÅ ÚÁÄÁÞÉ É ÕÞÁÓÔ×Ï×ÁÔØ × ÏÂÍÅÎÅ
ÓÏÏÂÝÅÎÉÑÍÉ É ÓÉÎÈÒÏÎÉÚÁÃÉÉ.
3. ÷ ÐÒÉÎÃÉÐÅ, ÜÔÏÔ ÍÅÈÁÎÉÚÍ ÎÕÖÅÎ ÔÏÌØËÏ ÄÌÑ ÕÐÒÁ×ÌÅÎÉÑ, ÐÏÎÑÔÎÏ, ÞÔÏ
ÚÁËÁÞÉ×ÁÔØ/ÓËÁÞÉ×ÁÔØ ÆÁÊÌÙ ÔÁËÉÍ ÏÂÒÁÚÏÍ ÎÉËÔÏ ÎÅ ÂÕÄÅÔ, Õ CGP ÅÓÔØ ÄÌÑ
ÜÔÏÇÏ ÂÏÌÅÅ ÕÄÏÂÎÙÅ ÍÅÈÁÎÉÚÍÙ. ðÏÜÔÏÍÕ ÍÏÖÎÏ ÏÇÒÁÎÉÞÉÔØ ÒÁÚÍÅÒ ×ÈÏÄÑÝÅÇÏ
ÚÁÐÒÏÓÁ, É ÏÔÄÁ×ÁÔØ ÔÅÌÏ ÚÁÐÒÏÓÁ × ×ÉÄÅ ÓÔÒÏËÉ ÉÚ ÓÌÏ×ÁÒÑ
(Vars().httpRequest.body).
4. äÌÑ ×ÙÄÁÞÉ ÉÎÆÏÒÍÁÃÉÉ ÏÂÒÁÔÎÏ, ÔÅÍ ÎÅ ÍÅÎÅÅ, ÈÏÞÅÔÓÑ ×ÓÅ-ÔÁËÉ ÉÍÅÔØ ×ÏÚÍÏÖÎÏÓÔØ ÐÉÓÁÔØ × ÐÏÔÏË, ÞÁÎËÁÍÉ.
úÁÞÅÍ ÜÔÏ ÎÕÖÎÏ:
- ÄÌÑ ÒÅÛÅÎÉÑ ÚÁÄÁÞ ÕÐÒÁ×ÌÅÎÉÑ ÐÒÉÌÏÖÅÎÉÅÍ, ËÏÇÄÁ ÍÙ ÎÅ ÍÏÖÅÍ ÏÔÄÁÔØ
XIMSS. îÁÐÒÉÍÅÒ, ÜÔÏ ×ÎÅÛÎÉÊ ÁÂÏÎÅÎÔ, ËÏÔÏÒÙÊ ÐÒÉÎÉÍÁÅÔ ÕÞÁÓÔÉÅ ×
ËÏÎÆÅÒÅÎÃÉÉ "ÎÁÛÅÇÏ" ÁÂÏÎÅÎÔÁ. ïÎ Á×ÔÏÒÉÚÏ×ÁÎ (ÚÎÁÎÉÅÍ ÐÉÎ-ËÏÄÁ, ËÏÔÏÒÙÊ
ÄÁÌ ÅÍÕ "ÎÁÛ" ÁÂÏÎÅÎÔ), ÎÏ ÄÁ×ÁÔØ ÅÍÕ ÄÏÓÔÕÐ ÐÏ XIMSS ÍÙ ÎÅ ÍÏÖÅÍ. ïÐÑÔØ
ÖÅ, ÜÔÏ ÐÏÌÎÏÓÔØÀ ÒÅÛÁÅÔÓÑ ×ÎÅÛÎÉÍ ÐÒÏËÓÉ (ËÏÔÏÒÙÊ Ë CGP ÕÖÅ ÍÏÖÅÔ ÂÙÔØ
ÐÏÄËÌÀÞÅÎ ÐÏ XIMSS), ÎÏ ÈÏÔÅÌÏÓØ ÂÙ ÏÂÏÊÔÉÓØ ÂÅÚ ÎÅÇÏ.
ñ ÎÅ ÂÕÄÕ ÏÐÉÓÙ×ÁÔØ ÐÏÄÒÏÂÎÏ ÆÕÎËÃÉÉ, ËÏÔÏÒÙÅ, ÎÁ ÍÏÊ ×ÚÇÌÑÄ,
ÐÏÎÁÄÏÂÑÔÓÑ, ÐÒÏÓÔÏ ÐÒÉ×ÅÄÕ ËÕÓÏË ËÏÄÁ "ËÁË ÎÁÍ ÂÙÌÏ ÂÙ ÕÄÏÂÎÏ". åÓÌÉ
ÅÓÔØ ÎÁÄÅÖÄÁ, ÞÔÏ ÔÁËÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÐÏÑ×ÉÔÓÑ -- Ó ÕÄÏ×ÏÌØÓÔ×ÉÅÍ ÐÏÔÒÁÞÕ
×ÒÅÍÑ ÎÁ ÐÒÏÅËÔÉÒÏ×ÁÎÉÅ api Ó Ô.Ú. ÒÁÚÒÁÂÏÔÞÉËÁ.
entry main is
req = Vars().httpRequest;
query = TextToObject(req.body);
if query != null and then IsDictionary(query) then
res = newDictionary();
res.rc = 200;
...
res.body = ObjectToString(queryResult);
res.header.("Content-Type") = "text/cgp-dictionary";
HTTPSendResponse(res);
else
res = newDictionary();
res.rc = 500;
res.body = "<HTML><BODY>Error parsing query</BODY></HTML>";
HTTPSendResponse(res);
end if;
end entry;
entry main is
req = Vars().httpRequest;
confId = req.queryParam.("confId");
if RemoteAuthentication() != null then
res = newDictionary();
res.rc = 200;
res.header.("Content-Type") = "text/html";
res.header.("Transfer-Encoding") = "chunked";
HTTPSendResponseHeaders(res);
...
HTTPWrite(....);
SY,
--
Alexey Naidyonov
ITooLabs
ðÏÌÕÞÅÎÏ Tue Nov 07 09:04:38 2006
üÔÏÔ ÁÒÈÉ× ÂÙÌ ÓÇÅÎÅÒÉÒÏ×ÁÎ hypermail 2.1.8 : Fri 24 Apr 2015 - 16:15:15 MSK