bugzilla-4intranet/Bugzilla/WebService
Vitaliy Filippov ae264bdf2d Fix Bug.update WS comment parameter handling 2019-08-09 15:55:57 +03:00
..
Server Fix xmlrpc with read/sysread clutter 2017-09-26 19:08:43 +03:00
Bug.pm Fix Bug.update WS comment parameter handling 2019-08-09 15:55:57 +03:00
Bugzilla.pm Fix "email" type for merged XML-RPC webservices, update Bugzilla WS and XMLRPC subclass 2015-11-05 13:32:53 +03:00
Classification.pm Merge WebServices from Bugzilla 5.0.1 2015-10-23 16:05:16 +03:00
Component.pm Merge WebServices from Bugzilla 5.0.1 2015-10-23 16:05:16 +03:00
Constants.pm Fix "email" type for merged XML-RPC webservices, update Bugzilla WS and XMLRPC subclass 2015-11-05 13:32:53 +03:00
Field.pm Allow keywords to depend on other fields (for example product) 2014-10-07 15:00:54 +04:00
FlagType.pm Merge WebServices from Bugzilla 5.0.1 2015-10-23 16:05:16 +03:00
Group.pm Fix WS.Group, add changelog 2016-09-01 15:34:13 +03: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 Merge WebServices from Bugzilla 5.0.1 2015-10-23 16:05:16 +03: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 Add Group.{add,remove}_{members,managers} web services 2015-11-16 18:20:23 +03:00
Util.pm fix for single include/exclude_fields 2015-11-20 13:45:51 +03: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.