mirror of
https://github.com/typicode/json-server.git
synced 2025-07-29 05:03:04 +08:00
Update rewriter
This commit is contained in:
@ -7,6 +7,10 @@ function updateQueryString (target, sourceUrl) {
|
|||||||
module.exports = (routes) => {
|
module.exports = (routes) => {
|
||||||
const router = express.Router()
|
const router = express.Router()
|
||||||
|
|
||||||
|
router.get('/__rules', (req, res) => {
|
||||||
|
res.json(routes)
|
||||||
|
})
|
||||||
|
|
||||||
Object.keys(routes).forEach((route) => {
|
Object.keys(routes).forEach((route) => {
|
||||||
if (route.indexOf(':') !== -1) {
|
if (route.indexOf(':') !== -1) {
|
||||||
router.all(route, (req, res, next) => {
|
router.all(route, (req, res, next) => {
|
||||||
|
@ -7,6 +7,12 @@ describe('Server', () => {
|
|||||||
let server
|
let server
|
||||||
let router
|
let router
|
||||||
let db
|
let db
|
||||||
|
const rewriterRules = {
|
||||||
|
'/api/': '/',
|
||||||
|
'/blog/posts/:id/show': '/posts/:id',
|
||||||
|
'/comments/special/:userId-:body': '/comments/?userId=:userId&body=:body',
|
||||||
|
'/firstpostwithcomments': '/posts/1?_embed=comments'
|
||||||
|
}
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
db = {}
|
db = {}
|
||||||
@ -75,13 +81,7 @@ describe('Server', () => {
|
|||||||
server = jsonServer.create()
|
server = jsonServer.create()
|
||||||
router = jsonServer.router(db)
|
router = jsonServer.router(db)
|
||||||
server.use(jsonServer.defaults())
|
server.use(jsonServer.defaults())
|
||||||
server.use(jsonServer.rewriter({
|
server.use(jsonServer.rewriter(rewriterRules))
|
||||||
'/api/': '/',
|
|
||||||
'/blog/posts/:id/show': '/posts/:id',
|
|
||||||
'/comments/special/:userId-:body': '/comments/?userId=:userId&body=:body',
|
|
||||||
'/firstpostwithcomments': '/posts/1?_embed=comments'
|
|
||||||
|
|
||||||
}))
|
|
||||||
server.use(router)
|
server.use(router)
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -703,6 +703,13 @@ describe('Server', () => {
|
|||||||
.expect([db.comments[4]])
|
.expect([db.comments[4]])
|
||||||
.end(done)
|
.end(done)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should expose routes', (done) => {
|
||||||
|
request(server)
|
||||||
|
.get('/__rules')
|
||||||
|
.expect(rewriterRules)
|
||||||
|
.end(done)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('router.render', (done) => {
|
describe('router.render', (done) => {
|
||||||
|
Reference in New Issue
Block a user