From dbfd6207290d1eee53fddec4c7c3b4aac0b2d47a Mon Sep 17 00:00:00 2001 From: David Lawrence Date: Wed, 8 Apr 2015 18:48:36 +0100 Subject: Bug 1051056: The REST API needs to be versioned so that new changes can be made that do not break compatibility r=dylan,a=glob --- extensions/Example/API/1_0/Resource/Example.pm | 59 ++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 extensions/Example/API/1_0/Resource/Example.pm (limited to 'extensions/Example/API') diff --git a/extensions/Example/API/1_0/Resource/Example.pm b/extensions/Example/API/1_0/Resource/Example.pm new file mode 100644 index 000000000..c4c5f9a32 --- /dev/null +++ b/extensions/Example/API/1_0/Resource/Example.pm @@ -0,0 +1,59 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. + +package Bugzilla::API::1_0::Resource::Example; + +use 5.10.1; +use strict; +use warnings; +use parent qw(Bugzilla::API::1_0::Resource); +use Bugzilla::Error; + +############# +# Constants # +############# + +use constant READ_ONLY => qw( + hello + throw_an_error +); + +use constant PUBLIC_METHODS => qw( + hello + throw_an_error +); + +sub REST_RESOURCES { + my $rest_resources = [ + qr{^/hello$}, { + GET => { + method => 'hello' + } + }, + qr{^/throw_an_error$}, { + GET => { + method => 'throw_an_error' + } + } + ]; + return $rest_resources; +} + +########### +# Methods # +########### + +# This can be called as Example.hello() from the WebService. +sub hello { + return { + message => 'Hello!' + }; +} + +sub throw_an_error { ThrowUserError('example_my_error') } + +1; -- cgit v1.2.3-24-g4f1b