Restful api for AdonisJs
Not ready for production
Currently support AdonisJs v4+MongoDB only.
Also check REST-ADMIN - An awesome admin dashboard based on vue 2 and bootstrap v4
also you can use
npm
by ommit--yarn
Install required packages
Edit /start/app.js
Edit /start/routes.js
`Route.rest('/rest/api', 'api')`
http://localhost:3333/rest/api/users
(or another port) should return paginated user list.The config file of adonis-rest
is /config/rest.js
,you can define any number of modules of adonis-rest routes. e.g. For frontend api and backend api, we call them api
and admin
module.exports = {
//route module name
api: {
//authenticator name
auth: 'jwt',
// which means there are only `index` and `show` routes
isAdmin: false,
//all of your resources config
resources: {
// for `/products`
products: {
// must access with a valid token
auth: true,
// all of your default query config for `/products`
query: {
// when list all products
index: {
// fetch appends, please refer to **Appends**
append: ['is_buy'],
// fetch related data
with: ['categories'],
// also you can define default sorting
sort: { _id: -1 },
},
// when show a product
show: {
append: ['is_buy'],
}
}
},
}
},
admin: {
//maybe `adminJwt`
auth: 'jwt',
//allow C(create)/U(update)D/(delete) routes
isAdmin: true,
//allow destroy all routes
allowDestroyAll: true,
resources: {
// ...
}
}
}
And then, you can add routes easily:/start/routes.js
/**
* @param String base url
* @param string key of route module in `/config/rest.js`
**/
Route.rest('/rest/api', 'api')
Route.rest('/rest/admin', 'admin')
Now, You can check the followed links: (if your port of server is 3333
)
There is a more powerful base model Rest/Models/Model
You can define a Product
model like this:
const Model = use('Rest/Models/Model')
module.exports = class Product extends Model {
}