From 8147ba582133646acd4135a9dc53f88db9db401f Mon Sep 17 00:00:00 2001 From: Samuel Reed Date: Mon, 10 Nov 2014 11:10:50 +0000 Subject: [PATCH 1/2] Remove model name from nickname, swagger spec understands op context. This removes the redundancy from paths in swagger-ui such as `/api/user/user_login`. It will now be displayed simply as `/api/user/login`. This is consistent with how `nickname` is used in Swagger examples. Added tests to route nickname processing. --- lib/route-helper.js | 6 ++++-- test/route-helper.test.js | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/route-helper.js b/lib/route-helper.js index 98ea610..a5ba8d5 100644 --- a/lib/route-helper.js +++ b/lib/route-helper.js @@ -149,8 +149,10 @@ var routeHelper = module.exports = { // is specified in the first response message. operations: [{ method: routeHelper.convertVerb(route.verb), - // [rfeng] Swagger UI doesn't escape '.' for jQuery selector - nickname: route.method.replace(/\./g, '_'), + // [strml] remove leading model name from op, swagger uses leading + // path as class name so it remains unique between models. + // route.method is always #{className}.#{methodName} + nickname: route.method.replace(/.*?\./, ''), parameters: accepts, responseMessages: responseMessages, summary: typeConverter.convertText(route.description), diff --git a/test/route-helper.test.js b/test/route-helper.test.js index cfe2010..faca3a5 100644 --- a/test/route-helper.test.js +++ b/test/route-helper.test.js @@ -185,11 +185,24 @@ describe('route-helper', function() { responseModel: 'ValidationError' }); }); + + it('route nickname does not include model name.', function() { + var doc = createAPIDoc(); + expect(doc.operations[0].nickname).to.equal('get'); + }); + + it('route nickname with a period is shorted correctly', function() { + // Method is built by remoting to always be #{className}.#{methodName} + var doc = createAPIDoc({ + method: 'test.get.me' + }); + expect(doc.operations[0].nickname).to.eql('get.me'); + }); }); // Easy wrapper around createRoute function createAPIDoc(def) { - return routeHelper.routeToAPIDoc(_defaults(def, { + return routeHelper.routeToAPIDoc(_defaults(def || {}, { path: '/test', verb: 'GET', method: 'test.get' From 33d0ac953186781532476fb0097f4e791c627cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Bajto=C5=A1?= Date: Tue, 2 Dec 2014 09:08:43 +0100 Subject: [PATCH 2/2] v1.6.0 --- CHANGES.md | 10 ++++++++-- package.json | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index e2d2e22..61c2a8d 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,15 +1,21 @@ +2014-12-02, Version 1.6.0 +========================= + + * Remove model name from nickname, swagger spec understands op context. (Samuel Reed) + + 2014-11-29, Version 1.5.2 ========================= * model-helper: ignore unknown property types (Miroslav Bajtoš) -2014-10-24, Version 1.5.1 +2014-10-24, Version 1.5.0 ========================= -2014-10-24, Version 1.5.0 +2014-10-24, Version 1.5.1 ========================= * Add an option `uiDirs` (Miroslav Bajtoš) diff --git a/package.json b/package.json index 1a8d628..1fc09ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "loopback-explorer", - "version": "1.5.2", + "version": "1.6.0", "description": "Browse and test your LoopBack app's APIs", "main": "index.js", "scripts": {