Genera la documentación de un servicio web RESTFull con soporte para ApidocJS y Swagger
Generador de Apidoc y Test de Integración para servicios web creados con express.
La documentación se genera a partir de las respuestas que devuelve el servicio.
## Características
## Caracteristicas:
- El servicio debe estar creado con [express](https://expressjs.com/es/).
- Utiliza [ava](https://github.com/avajs/ava) para ejecutar los tests y [ApidocJS](http://apidocjs.com/) junto con [Swagger](https://swagger.io/) para construir el apidoc.
- Es posible documentar las rutas a partir de una instancia de `express`, sin necesidad de levantar el servicio.
- Si el servicio está activo en modo `development` o `test`, es posible ejecutar funciones adicionales realizando peticiones sobre el servicio, permitiendo de esa forma documentar las respuestas automaticamente.
- Es posible generar un escaffold para los tests.
## Interfaz de línea de comandos
### Archivo `src/auth.js`
Esta librería contiene una herramienta CLI, cuya función es generar y procesar todos los ficheros que se requieren para crear la documentación.
```js
constApiGen=require('apidoc-generator')
### Instalación
module.exports=async()=>{
awaitApiGen.post('/api/auth/signin').inputData({body:{user:'demo1',password:'Developer'}}).generate()// Sin verificar
awaitApiGen.post('/api/auth/signin').inputData({body:{user:'demo1',password:'Developer'}}).request(true).generate()// Verifica la ruta
## Configuración del proyecto para generar la documentación y los tests
### Estructura
```txt
app
├─ documentation
| ├─ build
| ├─ template
| │ ├─ test-block.js
| │ └─ test-body.js
| ├─ src
| │ └─ api-v1-users.js
| ├─ scaffold.js
| ├─ scaffold-test.js
| ├─ generate.js
| └─ server.js
├─ src
│ └─ app.js
├─ test
│ └─ api-v1-users.test.js
├─ index.js
└─ package.json
```
### Archivo `documentation/scaffold.js`
Este fichero se encarga de crear los ficheros necesarios para documentar las rutas:
-`documentation/src/api-v1-users.js`
-`documentation/src/api-v1-users.json`
-`documentation/src/api-v1-users.yml`
En este ejemplo, se dará prioridad al fichero `api-v1-users.js`, posteriormente al fichero `JSON` o `YAML` según se haya configurado en la variable `HELP_TYPE`.
```js
constApiGen=require('apidoc-generator')
constpath=require('path')
ApiGen.SRC_PATH=path.resolve(__dirname,'src')
ApiGen.HELP_TYPE='YAML'// YAML o JSON
constapp=require(process,cwd())
ApiGen.scaffold(app)
```
### Archivo `documentation/scaffold-test.js`
Este fichero se encarga de crear los ficheros necesarios para testear los servicios.
Se requieren los paquetes: `ava` y `supertest` para ejecutar los tests.