diff --git a/debian/templates/apache-shared-intranet-plack.conf b/debian/templates/apache-shared-intranet-plack.conf index 91e47f681d..f77f6403e0 100644 --- a/debian/templates/apache-shared-intranet-plack.conf +++ b/debian/templates/apache-shared-intranet-plack.conf @@ -28,8 +28,11 @@ ProxyPassReverse /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/intranet" # Point the /api endpoint to Plack - # ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" - # ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" + RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl + RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2 [L,PT] + + ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" + ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" diff --git a/debian/templates/apache-shared-opac-plack.conf b/debian/templates/apache-shared-opac-plack.conf index 95787d81b7..f68e3d28f1 100644 --- a/debian/templates/apache-shared-opac-plack.conf +++ b/debian/templates/apache-shared-opac-plack.conf @@ -18,8 +18,11 @@ ProxyPassReverse /cgi-bin/koha "unix:/var/run/koha/${instance}/plack.sock|http://localhost/opac" # Point the /api endpoint to Plack - # ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" - # ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" + RewriteCond %{REQUEST_URI} !^/api/v[0-1]+/app.pl + RewriteRule ^/api/(v[0-9]+)/(.*)$ /api/$1/app.pl/api/$1/$2 [L,PT] + + ProxyPass /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" + ProxyPassReverse /api "unix:/var/run/koha/${instance}/plack.sock|http://localhost/api" diff --git a/debian/templates/plack.psgi b/debian/templates/plack.psgi index 704b91b5a4..397998f200 100644 --- a/debian/templates/plack.psgi +++ b/debian/templates/plack.psgi @@ -25,6 +25,8 @@ use Plack::App::CGIBin; use Plack::App::Directory; use Plack::App::URLMap; +use Mojo::Server::PSGI; + # Pre-load libraries use C4::Boolean; use C4::Branch; @@ -60,16 +62,18 @@ my $opac = Plack::App::CGIBin->new( root => '/usr/share/koha/opac/cgi-bin/opac' )->to_app; -# my $api = Plack::App::CGIBin->new( -# root => '/usr/share/koha/api/' -# )->to_app; +my $apiv1 = builder { + my $server = Mojo::Server::PSGI->new; + $server->load_app('/usr/share/koha/api/v1/app.pl'); + $server->to_psgi_app; +}; builder { enable "ReverseProxy"; enable "Plack::Middleware::Static"; - mount '/opac' => $opac; - mount '/intranet' => $intranet; - # mount '/api' => $api; + mount '/opac' => $opac; + mount '/intranet' => $intranet; + mount '/api/v1/app.pl' => $apiv1; };