From 11fcc927cc155643d34e34e9eeed87f92dacf574 Mon Sep 17 00:00:00 2001 From: Olli-Antti Kivilahti Date: Wed, 10 Feb 2016 14:24:36 +0200 Subject: [PATCH 2/4] Bug 13799 - REST API - Swagger2 minifier! --- api/v1/minifySwagger.pl | 86 ------------------------------------- api/v1/swagger/minifySwagger.pl | 94 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 94 insertions(+), 86 deletions(-) delete mode 100755 api/v1/minifySwagger.pl create mode 100644 api/v1/swagger/minifySwagger.pl diff --git a/api/v1/minifySwagger.pl b/api/v1/minifySwagger.pl deleted file mode 100755 index 2b6657a..0000000 --- a/api/v1/minifySwagger.pl +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/perl - -# Copyright 2016 KohaSuomi -# -# This file is part of Koha. -# -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 3 of the License, or (at your option) any later -# version. -# -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with Koha; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -use Modern::Perl; - -use Getopt::Long qw(:config no_ignore_case); - -my $help = 0; -my $verbose = 0; -my $swaggerFile = "swagger.json"; -my $swaggerMinifiedFile = "swagger.min.json"; -my $validate = 0; - -GetOptions( - 'h|help' => \$help, - 'v|verbose:i' => \$verbose, - 's|source:s' => \$swaggerFile, - 'd|destination:s' => \$swaggerMinifiedFile, - 'V|validate' => \$validate, -); - -my $usage = < 0) { - $ENV{SWAGGER2_DEBUG} = $verbose; -} - - -require Swagger2; #When you import the Swagger2-libraries, the environment variables are checked and cannot be altered anymore. So set verbosity first, then load libs. -my $swagger = Swagger2->new($swaggerFile); -$swagger = $swagger->expand; #Fetch all JSON-Schema references - -open(SWOUT, ">:encoding(UTF-8)", $swaggerMinifiedFile) or die "$0: Couldn't open the minified Swagger2 output file:\n $!"; -print SWOUT $swagger->to_string() if not($validate); -close(SWOUT); diff --git a/api/v1/swagger/minifySwagger.pl b/api/v1/swagger/minifySwagger.pl new file mode 100644 index 0000000..0421b4f --- /dev/null +++ b/api/v1/swagger/minifySwagger.pl @@ -0,0 +1,94 @@ +#!/usr/bin/perl + +# Copyright 2016 KohaSuomi +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 3 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +use Modern::Perl; + +use Getopt::Long qw(:config no_ignore_case); + +my $help = 0; +my $verbose = 0; +my $swaggerFile = "swagger.json"; +my $swaggerMinifiedFile = "swagger.min.json"; +my $validate = 0; + +GetOptions( + 'h|help' => \$help, + 'v|verbose:i' => \$verbose, + 's|source:s' => \$swaggerFile, + 'd|destination:s' => \$swaggerMinifiedFile, + 'V|validate' => \$validate, +); + +my $usage = < 0) { + $ENV{SWAGGER2_DEBUG} = $verbose; +} + + +require Swagger2; #When you import the Swagger2-libraries, the environment variables are checked and cannot be altered anymore. So set verbosity first, then load libs. +my $swagger = Swagger2->new($swaggerFile); +$swagger = $swagger->expand; #Fetch all JSON-Schema references + +if ($validate) { + my @errors = $swagger->validate; + print join("\n", "Swagger2: Invalid spec:", @errors)."\n" if @errors; +} + +open(SWOUT, ">:encoding(UTF-8)", $swaggerMinifiedFile) or die "$0: Couldn't open the minified Swagger2 output file:\n $!"; +print SWOUT $swagger->to_string() if not($validate); +close(SWOUT); -- 1.9.1