bugzilla-4intranet/Bugzilla/WebService
Vitaliy Filippov 6425bfe311 Allow keywords to depend on other fields (for example product) 2014-10-07 15:00:54 +04:00
..
Server Bug 122650 - Fix SOAP::Transport::HTTP to work under HTTP::Server::Simple 2013-09-09 14:31:43 +00:00
Bug.pm Use $field->value_type instead of Bugzilla::Field::Choice->type($field) 2014-10-07 14:58:17 +04:00
Bugzilla.pm Bug 84586 - Merge WebServices from Bugzilla 4.0.1 2011-08-19 15:59:19 +00:00
Constants.pm Bug 121746 - учёл замечания по коду 2013-06-21 09:19:07 +00:00
Field.pm Allow keywords to depend on other fields (for example product) 2014-10-07 15:00:54 +04:00
Keyword.pm Remove user_id_to_login procedural API; set default values for non-select fields on bug form 2014-10-07 15:00:54 +04:00
Product.pm Remove useXXX parameters and use $field->enabled instead; 2014-10-07 14:58:17 +04:00
README Bug 40933 - НЕ ДО КОНЦА оттестированная объединённая версия Bugzilla 3.6 - НИКУДА НЕ РАЗВОРАЧИВАТЬ! :) 2010-05-14 20:02:34 +00:00
Server.pm Bug 84586 - Treat int/double/dateTime empty string as nil 2011-08-24 10:05:52 +00:00
User.pm Rename Bugzilla::User::match to match_name to not hide Bugzilla::Object method 2014-10-07 14:58:16 +04:00
Util.pm Bug 84586 - Merge WebServices from Bugzilla 4.0.1 2011-08-19 15:59:19 +00:00

README

The class structure of these files is a little strange, and this README
explains it.

Our goal is to make JSON::RPC and XMLRPC::Lite both work with the same code.
(That is, we want to have one WebService API, and have two frontends for it.)

The problem is that these both pass different things for $self to WebService
methods.

When XMLRPC::Lite calls a method, $self is the name of the *class* the 
method is in. For example, if we call Bugzilla.version(), the first argument
is Bugzilla::WebService::Bugzilla. So in order to have $self
(our first argument) act correctly in XML-RPC, we make all WebService
classes use base qw(Bugzilla::WebService). 

When JSON::RPC calls a method, $self is the JSON-RPC *server object*. In other
words, it's an instance of Bugzilla::WebService::Server::JSONRPC. So we have
Bugzilla::WebService::Server::JSONRPC inherit from Bugzilla::WebService.