Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/coderofsalvation/dpd-swagger-doc

automatically generated apidocs from deployd resources
https://github.com/coderofsalvation/dpd-swagger-doc

Last synced: 12 days ago
JSON representation

automatically generated apidocs from deployd resources

Awesome Lists containing this project

README

        

generate beautiful online swagger docs based on your deployd resources

## Features

* automatic documentation for Collection resources
* automatic documentation for UserCollection resources
* Custom/Collection/UserCollection-resources can be hinted in config.json

## Usage: linux

$ cd your-deployd-dir
$ npm install dpd-event dpd-swagger-doc dpd-event-extension

Now copy the swagger-resource and symlink the swaggerfolder:

$ cp -R node_modules/dpd-swagger-doc/resource resources/swagger
$ cp -R node_modules/dpd-swagger-doc/node_modules/swagger-ui/dist public/apidoc

> Done! now try: http://localhost:2403/apidoc/?url=/swagger#!/default

## Usage: windows/mac

* npm install dpd-event dpd-swagger-doc dpd-event-extension
* Copy : node_modules/dpd-swagger-doc/resource to resources/swagger
* Create a folder in 'public' folder: 'apidoc'
* Copy from: /node_modules/dpd-swagger-doc/node_modules/swagger-ui/dist to public/apidoc

> Done! now try http://localhost:2403/apidoc/?url=/swagger#!/default

## Now what?

* swagger json (should be) automatically generated at endpoint `/swagger`
* surf to `http://localhost/apidoc/?url=/swagger#!/default` to see the generated docs
* tweak `resource/swagger/get.js` at will

## Hinting documentation

Swagger will peek into your resource's `config.json` for swagger snippets.
This will allow you to extend the automatic documentation for (User)Collections.
For Custom resources however, you always need to define them:

{
"type": "Collection",
"properties": {
"createdBy": {
"name": "createdBy",
"type": "string",
"typeLabel": "string",
"required": false,
"id": "createdBy",
"default":"username", <-- add this for autogenerated mock payloads
"order": 0
},

....

}
"swagger":{ <--
"methods":{ <--
"get": { <-- this is where the swagger extending
"public":true, <-- starts..
"description": "Creates a item", <--
"produces": [ "application/json" ] <-- for more see swagger 2 specs or just
} <-- peek here: http://petstore.swagger.io/v2/swagger.json
} <--
}
}

> NOTE: it is not needed to specify get/post/put/delete sections, since they are automatically generated for
> UserCollections & Collections. However, as shown above you can overload them (just peek at the `/swagger`-output in your browser)

#### Troubleshooting (MAC)

```
Error loading module node_modules/brace
ReferenceError: window is not define
```

Perform these steps below, on the Mac when you get the above error:
1.npm uninstall brace
2.npm uninstall fbjs
3.npm uninstall lodash-es

> NOTE: It might throw some error on the console for certain functions and headers being missed. But it'll not be something to worry about.