Commit Graph

12 Commits

Author SHA1 Message Date
Miroslav Bajtoš 7ee8703ff5 Rework the module to a loopback component
Rework the exported function to conform to the component convention:

    var loopback = require('loopback');
    var explorer = require('loopback-explorer');
    var app = loopback();
    explorer(app, options);

Allow users to mount explorer as a middleware too:

    app.use('/explorer', explorer.routes(app, options));

- drop dependency on express
- drop support for loopback 1.x
- add a new option "mountPath" to specify where to mount the explorer UI
  and swagger metadata
- describe upgrading from v1.x in README
2015-08-10 16:51:03 +02:00
Pradnya Baviskar 297086fb55 Fix explorer tests for different line endings on Windows 2015-02-27 15:20:10 +05:30
Miroslav Bajtoš c6693f8725 Prevent double slash in the resource URLs
SwaggerUI builds resource URL by concatenating basePath + resourcePath.
Since the resource paths are always startign with a slash, if the
basePath ends with a slash too, an incorrect URL is produced.
This was typically happenning when `restApiRoot` was '/'.

This commit modifies the code producing the base path to remove
the trailing slash.
2015-01-09 14:45:46 +01:00
Simon Ho e825c4b49f Allow `uiDirs` to be defined as a String 2014-12-31 13:49:06 -08:00
Miroslav Bajtoš 2ec096a278 Add an option `uiDirs`
The `uiDirs` option allows users to provide their own set of directories
with UI files, e.g. to provide a custom swagger-ui fork and a custom
set of style/font overrides:

    explorer(app, {
      uiDirs: [
        path.resolve(__dirname, 'public'),
        path.resolve(__dirname, 'node_modules', 'swagger-ui')
      ]
    });

The existing option `swaggerDistRoot` is deprecated now.
2014-10-24 19:24:34 +02:00
Samuel Reed 70dddef296 Use express routes instead of modifying remoting.
This completes the migration of swagger processing from strong-remoting
into loopback-explorer.

Added additional usage instructions to README and additional testing.

This commit introduces a change into where resource descriptors
are hosted. They are no longer hosted under /swagger, but instead
under the same path as the Explorer, wherever that may be.
Generally, the resource listing will be available at
/explorer/resources, and api listings under
/explorer/resources/{modelName}.
2014-07-09 18:13:47 -05:00
Samuel Reed 4c0ce42001 Refactoring swagger 1.2 rework.
Added comments, api version, and better Swagger 1.2 compat.
2014-07-05 14:32:00 -05:00
Samuel Reed eb31787fbc Swagger 1.2 compatability. Moved strong-remoting/ext/swagger to this module.
Will now correctly return model schemas.

Moved swagger.js tests to this module.
2014-07-04 17:09:03 -05:00
Miroslav Bajtoš 8b6fc55de8 Use `app.get('restApiRoot')` as default basePath 2014-01-07 16:56:58 +01:00
Miroslav Bajtos 1ca2d2ccad Reorder middleware to fix unit-test failures.
LoopBack REST adapter owns the whole URL space and does not let other
middleware handle same URLs. It's possible to circumvent this measure
by installing the explorer middleware before the REST middleware.
2013-12-09 11:44:46 +01:00
Miroslav Bajtos a33c067ffa Support custom basePath
Recognize the `basePath` passed to swagger extension and use it in
the webpage to construct the correct `discoveryUrl`.
2013-11-29 16:26:16 +01:00
Ritchie Martori f3d6cb9b54 Initial explorer 2013-11-05 11:16:59 -08:00