From bb64e719b71a048d1f8a03e9724a167cb8d6abb5 Mon Sep 17 00:00:00 2001
From: typicode
Date: Sun, 25 Dec 2016 07:44:36 +0100
Subject: [PATCH 001/427] Update rewriter
---
src/server/rewriter.js | 4 ++++
test/server/plural.js | 21 ++++++++++++++-------
2 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/src/server/rewriter.js b/src/server/rewriter.js
index e94ceb90e..d7f3c7471 100644
--- a/src/server/rewriter.js
+++ b/src/server/rewriter.js
@@ -7,6 +7,10 @@ function updateQueryString (target, sourceUrl) {
module.exports = (routes) => {
const router = express.Router()
+ router.get('/__rules', (req, res) => {
+ res.json(routes)
+ })
+
Object.keys(routes).forEach((route) => {
if (route.indexOf(':') !== -1) {
router.all(route, (req, res, next) => {
diff --git a/test/server/plural.js b/test/server/plural.js
index 25103b67d..8a70ec8a4 100644
--- a/test/server/plural.js
+++ b/test/server/plural.js
@@ -7,6 +7,12 @@ describe('Server', () => {
let server
let router
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(() => {
db = {}
@@ -75,13 +81,7 @@ describe('Server', () => {
server = jsonServer.create()
router = jsonServer.router(db)
server.use(jsonServer.defaults())
- server.use(jsonServer.rewriter({
- '/api/': '/',
- '/blog/posts/:id/show': '/posts/:id',
- '/comments/special/:userId-:body': '/comments/?userId=:userId&body=:body',
- '/firstpostwithcomments': '/posts/1?_embed=comments'
-
- }))
+ server.use(jsonServer.rewriter(rewriterRules))
server.use(router)
})
@@ -703,6 +703,13 @@ describe('Server', () => {
.expect([db.comments[4]])
.end(done)
})
+
+ it('should expose routes', (done) => {
+ request(server)
+ .get('/__rules')
+ .expect(rewriterRules)
+ .end(done)
+ })
})
describe('router.render', (done) => {
From ad9cbdd1ae4c68c1909c4d938285d1d3fc9d5d0d Mon Sep 17 00:00:00 2001
From: typicode
Date: Sun, 25 Dec 2016 18:49:09 +0100
Subject: [PATCH 002/427] Add failing test
---
test/server/plural.js | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/test/server/plural.js b/test/server/plural.js
index 8a70ec8a4..a144ca617 100644
--- a/test/server/plural.js
+++ b/test/server/plural.js
@@ -11,7 +11,8 @@ describe('Server', () => {
'/api/': '/',
'/blog/posts/:id/show': '/posts/:id',
'/comments/special/:userId-:body': '/comments/?userId=:userId&body=:body',
- '/firstpostwithcomments': '/posts/1?_embed=comments'
+ '/firstpostwithcomments': '/posts/1?_embed=comments',
+ '/articles?_id=:id': '/posts/:id'
}
beforeEach(() => {
@@ -704,6 +705,14 @@ describe('Server', () => {
.end(done)
})
+ // TODO
+ // it('should rewrite query params', (done) => {
+ // request(server)
+ // .get('/articles?_id=1')
+ // .expect(db.posts[0])
+ // .end(done)
+ // })
+
it('should expose routes', (done) => {
request(server)
.get('/__rules')
From 69321be00fe85d026a88e7f30d464bd51afcee2f Mon Sep 17 00:00:00 2001
From: typicode
Date: Sun, 25 Dec 2016 19:12:38 +0100
Subject: [PATCH 003/427] Display custom routes
---
package.json | 2 +-
src/server/public/index.html | 29 ++++++++++++++++++++++-------
2 files changed, 23 insertions(+), 8 deletions(-)
diff --git a/package.json b/package.json
index fa5c23b5f..6ef35be00 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,7 @@
"test": "npm run test:cli && npm run test:server && standard --fix",
"test:cli": "npm run build && cross-env NODE_ENV=test mocha test/cli/*.js",
"test:server": "cross-env NODE_ENV=test mocha test/server/*.js",
- "start": "node bin",
+ "start": "babel-node src/cli/bin",
"prepush": "npm t",
"build": "babel src -d lib --copy-files",
"toc": "markdown-toc -i README.md",
diff --git a/src/server/public/index.html b/src/server/public/index.html
index bdac2a7ad..83a644b90 100644
--- a/src/server/public/index.html
+++ b/src/server/public/index.html
@@ -27,7 +27,9 @@ Routes
Here are the resources that JSON Server has loaded:
-
+
+
+
You can view database current state at any time:
@@ -36,10 +38,10 @@ Routes
db
-
+
You can use any HTTP verbs (GET, POST, PUT, PATCH and DELETE) and access your resources from anywhere
- using CORS and JSONP.
+ using CORS or JSONP.
Documentation
@@ -61,17 +63,30 @@ Issues
-
-
+
+