Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Alex Quispe
doc-generator
Commits
2a38d0e4
Commit
2a38d0e4
authored
Oct 19, 2018
by
Alex Quispe
Browse files
Corrección de errores y archivo README actualizado.
parent
619caa94
Changes
4
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
2a38d0e4
...
...
@@ -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`
...
...
class/ApidocCreator.js
View file @
2a38d0e4
...
...
@@ -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
))))
{
...
...
example/documentation/src/users.js
View file @
2a38d0e4
...
...
@@ -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
'
)
}
example/service/app.js
View file @
2a38d0e4
...
...
@@ -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
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment