Commit 2a38d0e4 authored by Alex Quispe's avatar Alex Quispe
Browse files

Corrección de errores y archivo README actualizado.

parent 619caa94
......@@ -24,7 +24,7 @@ documentation
```js
const ApiGen = require('apidoc-generator')
const path = require('path')
const path = require('path')
ApiGen.API_URL = 'http://localhost:3000'
ApiGen.SRC_PATH = path.resolve(__dirname, 'src')
......@@ -33,6 +33,12 @@ ApiGen.BUILD_PATH = path.resolve(__dirname, 'build')
ApiGen.create().catch(e => { console.log(e) })
```
También es posible indicar el orden de los ficheros:
```js
ApiGen.create(['auth', 'api']).catch(e => { console.log(e) })
```
### Archivo `src/auth.js`
```js
......@@ -68,9 +74,19 @@ El resultado se encuentra en la carpeta `build`
## Documentación
### Métodos soportados:
```js
await ApiGen.get('api/v1/users').generate()
await ApiGen.post('api/v1/users').generate()
await ApiGen.put('api/v1/users/:id').generate()
await ApiGen.patch('api/v1/users/:id').generate()
await ApiGen.delete('api/v1/users/:id').generate()
```
### Funciones disponibles:
| Función | Descripción | Valor por defecto |
| Función | Descripción | Valor por defecto |
| ------------- | ---------------------------------------------------------------------- | ----------------------- |
| `data` | Datos de entrada: `{ headers: {}, params: {}, query: {}, body: {} }` | `{}` |
| `name` | Nombre con el que se identificará a la ruta. | `<method>/<path></key>` |
......@@ -84,14 +100,14 @@ El resultado se encuentra en la carpeta `build`
**Ejemplo:**
```js
ApiGen.get('/api/v1/users').generate()
ApiGen.post('/api/v1/users').data({ body; { user: 'admin', pass: '123'} }).generate()
ApiGen.post('/api/v1/users').data({ body; { user: 'admin', pass: '123'} }).name('Autenticar').generate()
await ApiGen.get('/api/v1/users').generate()
await ApiGen.post('/api/v1/users').data({ body; { user: 'admin', pass: '123'} }).generate()
await ApiGen.post('/api/v1/users').data({ body; { user: 'admin', pass: '123'} }).name('Autenticar').generate()
ApiGen.get('/api/v1/users').key('Admin').generate()
ApiGen.get('/api/v1/users').key('User').generate()
await ApiGen.get('/api/v1/users').key('Admin').generate()
await ApiGen.get('/api/v1/users').key('User').generate()
ApiGen.get('/documentando/solo/la/ruta').request(false).generate()
await ApiGen.get('/documentando/solo/la/ruta').request(false).generate()
```
### Función `execute`
......
......@@ -59,15 +59,12 @@ function _route (properties, onCreate) {
apidoc += _createApidoc('', INPUT.body, '@apiParam', 'Datos de entrada - body')
apidocSwagger.content.parameters = []
if (INPUT.headers && Object.keys(INPUT.headers).length > 0) {
// const PARAM = { in: 'header', name: 'header', description: 'Datos de entrada del encabezado' }
const HEADERS_PARAM = _createApidocSwagger('', INPUT.headers, '@apiHeader', 'Datos de entrada - headers')
Object.keys(HEADERS_PARAM).forEach(k => {
HEADERS_PARAM[k].in = 'header'
HEADERS_PARAM[k].name = k
apidocSwagger.content.parameters.push(HEADERS_PARAM[k])
})
// PARAM.schema = { type: 'object', properties: _createApidocSwagger('', INPUT.headers, '@apiHeader', 'Datos de entrada - headers') }
}
if (INPUT.params && Object.keys(INPUT.params).length > 0) {
const PATH_PARAM = _createApidocSwagger('', INPUT.params, '@apiParam', 'Datos de entrada - params')
......@@ -79,21 +76,25 @@ function _route (properties, onCreate) {
}
if (INPUT.query && Object.keys(INPUT.query).length > 0) {
const PARAM = { in: 'query', name: 'query', description: 'Datos de entrada de la query' }
PARAM.schema = { type: 'object', properties: _createApidocSwagger('', INPUT.query, '@apiParam', 'Datos de entrada - body') }
const PROPERTIES = _createApidocSwagger('', INPUT.query, '@apiParam', 'Datos de entrada - body')
const SCHEMA = (PROPERTIES.type) ? PROPERTIES : { type: 'object', properties: PROPERTIES }
PARAM.schema = SCHEMA
apidocSwagger.content.parameters.push(PARAM)
}
if (INPUT.body && Object.keys(INPUT.body).length > 0) {
const PARAM = { in: 'body', name: 'body', description: 'Datos de entrada del body' }
PARAM.schema = { type: 'object', properties: _createApidocSwagger('', INPUT.body, '@apiParam', 'Datos de entrada - body') }
const PROPERTIES = _createApidocSwagger('', INPUT.body, '@apiParam', 'Datos de entrada - body')
const SCHEMA = (PROPERTIES.type) ? PROPERTIES : { type: 'object', properties: PROPERTIES }
PARAM.schema = SCHEMA
apidocSwagger.content.parameters.push(PARAM)
}
apidocSwagger.content.responses = {}
if (OUTPUT && Object.keys(OUTPUT).length > 0) {
const SCHEMA = _createApidocSwagger('', OUTPUT, '@apiSuccess', 'Respuesta - body')
const RESPONSE = { description: 'Resultado exitoso', schema: { type: 'object', properties: SCHEMA } }
const PROPERTIES = _createApidocSwagger('', OUTPUT, '@apiSuccess', 'Respuesta - body')
const SCHEMA = (PROPERTIES.type) ? PROPERTIES : { type: 'object', properties: PROPERTIES }
const RESPONSE = { description: 'Resultado exitoso', schema: SCHEMA }
apidocSwagger.content.responses['200'] = RESPONSE
// console.log("RESPONSE = ", RESPONSE);
}
if (INPUT.body && ((Object.keys(INPUT.body).length > 0) || (Array.isArray(INPUT.body)))) {
......
......@@ -11,4 +11,10 @@ module.exports = async () => {
await ApiGen.post('/api/v1/users').data({body:{name:'Smith',user:'user',pass:'123'}}).key('User').generate('GRUPO 2')
await ApiGen.get('/documentando/solo/la/ruta').request(false).generate('GRUPO 3')
const DATA = [
{ id: 1, name: 'Anna', user: 'admin', pass: '123' },
{ id: 2, name: 'Juan', user: 'user', pass: '123' }
]
await ApiGen.post('/api/v1/users/bulk').data({ body: DATA }).generate('GROUP 4')
}
......@@ -16,8 +16,8 @@ app.use(express.static('public'))
app.get('/api/v1/users', (req, res, next) => {
const users = [
{id:1, name:'John', user:'admin', pass:'123'},
{id:2, name:'Dany', user:'user', pass:'123'}
{ id: 1, name: 'John', user: 'admin', pass: '123' },
{ id: 2, name: 'Dany', user: 'user', pass: '123' }
]
res.status(200).json(users)
})
......@@ -30,6 +30,17 @@ app.post('/api/v1/users', (req, res, next) => {
res.status(201).json(result)
})
app.post('/api/v1/users/bulk', (req, res, next) => {
const users = req.body
let cnt = 1
users.forEach(user => { user.id = cnt++ })
const result = {
finalizado: true,
datos: users
}
res.status(201).json(result)
})
const PORT = 4000
app.listen(PORT)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment