diff --git a/module/Rest/src/Middleware/PathVersionMiddleware.php b/module/Rest/src/Middleware/PathVersionMiddleware.php index b3eae299..ac29d972 100644 --- a/module/Rest/src/Middleware/PathVersionMiddleware.php +++ b/module/Rest/src/Middleware/PathVersionMiddleware.php @@ -37,6 +37,11 @@ class PathVersionMiddleware implements MiddlewareInterface $uri = $request->getUri(); $path = $uri->getPath(); + // Exclude non-rest route + if (strpos($path, '/rest') !== 0) { + return $out($request, $response); + } + // If the path does not begin with the version number, prepend v1 by default for retrocompatibility purposes if (strpos($path, '/rest/v') !== 0) { $parts = explode('/', $path); diff --git a/module/Rest/test/Middleware/PathVersionMiddlewareTest.php b/module/Rest/test/Middleware/PathVersionMiddlewareTest.php index 098c4b01..6eba4feb 100644 --- a/module/Rest/test/Middleware/PathVersionMiddlewareTest.php +++ b/module/Rest/test/Middleware/PathVersionMiddlewareTest.php @@ -44,4 +44,16 @@ class PathVersionMiddlewareTest extends TestCase $this->assertEquals('/rest/v1/bar/baz', $req->getUri()->getPath()); }); } + + /** + * @test + */ + public function nonRestPathsAreNotProcessed() + { + $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/non-rest')); + $test = $this; + $this->middleware->__invoke($request, new Response(), function ($req) use ($request, $test) { + $test->assertSame($request, $req); + }); + } }