PSR7 Router
Goals
- Request handler working prototype with legacy routes support
- Allow modules to provide routes
- Allow modules to specify per-route middlewares
-
Catch uncaught exceptions and cast them as
status: error
responses. Ensure Sentry works. -
API/FS versioning? - ... Middlewares
Milestones
Milestone | Link |
---|---|
PSR-7 Router | https://gitlab.com/groups/minds/-/milestones/63 |
Merge Requests & Branches
https://gitlab.com/groups/minds/-/merge_requests?scope=all&utf8=%E2%9C%93&state=opened&search=router | PSR-7 Router |
Mockups
Flow
Successful response
App Middleware failure response
e.g.: XSRF validation failure
Group failure response
e.g. Logged-in user required for certain routes group
Action failure response
e.g. Database unavailable failure
Potential implementation example
$this->route->withPrefix('api/v3/newsfeed', function(Route $route) {
$route->get(
'/',
function(ServerRequest $request) {
return (new JsonResponse([]))
->withStatus(501);
}
);
$route->using([
LoggedInMiddleware::class,
])->get(
'/subscribed',
DiRef::_('Newsfeed\Manager', 'listBySubscriptions')
);
$route->using([
LoggedInMiddleware::class,
])->withPrefix('/activity', function (Route $route) {
$route->post(
'/',
DiRef::_('Newsfeed\Activity\Manager', 'create')
);
$route->post(
'/:id',
DiRef::_('Newsfeed\Activity\Manager', 'edit')
);
$route->delete(
'/:id',
DiRef::_('Newsfeed\Activity\Manager', 'delete')
);
});
$route->get(
'/:algorithm',
DiRef::_('Newsfeed\Manager', 'listByAlgorithm')
);
});
Developers
Developer | Focus |
---|---|
@edgebal | backend |
added scoped labels
mentioned in merge request engine!342
changed the description
marked the task Request handler working prototype with legacy routes support as completed
added issue minds#828 (closed)
added issue engine#877 (closed)
added issue engine#878 (closed)
added issue engine#879 (closed)
added issue engine#880 (closed)
added issue engine#881 (closed)
added issue engine#882
added issue engine#883 (closed)
added issue engine#884 (closed)
added issue engine#885 (closed)
added issue engine#886 (closed)
added issue engine#887 (closed)
added issue engine#888 (closed)
added issue engine#889
added issue engine#890
added issue engine#891
added issue engine#892
added issue engine#893
added issue engine#894 (closed)
added issue engine#895 (closed)
added issue engine#897 (closed)
changed the description
changed title from to
changed the description
changed the description
changed the description
changed the description
added issue front#2174 (closed)
added issue front#2176 (closed)
added issue engine#1143
changed finish date to Dec 4, 2019
added issue engine#1177
added scoped label
added issue engine#1189
marked the task Allow modules to provide routes as completed
marked the task Allow modules to specify per-route middlewares as completed
changed the description
changed finish date to Dec 18, 2019
This epic is delayed due to conflicting priorities with the Top Feeds fixes. @edgebal is focusing on that and I am moving the due date to next sprint for the PSR-7 router.