1
0
Fork 0
arangodb/Documentation/Books/Manual/Foxx/Migrating2x/Controllers/Endpoints.md

39 lines
1.3 KiB
Markdown

The request context
===================
When defining a route on a controller the controller would return an object called *request context*. Routers return a similar object called *endpoint*. Routers also return endpoints when mounting child routers or middleware, as does the `use` method of the service context.
The main differences between the new endpoints and the objects returned by controllers in previous versions of ArangoDB are:
* `bodyParam` is now simply called `body`; it is no longer neccessary or possible to give the body a name and the request body will not show up in the request parameters. It's also possible to specify a MIME type
* `body`, `queryParam` and `pathParam` now take position arguments instead of an object. For specifics see the [endpoint documentation](../../Reference/Routers/Endpoints.md).
* `notes` is now called `description` and takes a single string argument.
* `onlyIf` and `onlyIfAuthenticated` are no longer available; they can be emulated with middleware if necessary:
Old:
```js
ctrl.get(/* ... */)
.onlyIf(function (req) {
if (!req.user) {
throw new Error('Not authenticated!');
}
});
```
New:
```js
router.use(function (req, res, next) {
if (!req.arangoUser) {
res.throw(403, 'Not authenticated!');
}
next();
});
router.get(/* ... */);
```