acacode / acacode/swagger-typescript-api

Global security parameter should be overriden by local security parameter

Abierto
#348 0 comentarios 1 reacción 0 asignados Ver en GitHub
bug
Lenguaje dominante
TypeScript
Estrellas
4.1k
Forks
436
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I have schema with globally set security for all paths. But some of the paths override global security with empty value to disable security. When I generate http client for such schema all method calls have `security: true`, even the methods which overriden value.

Minimum reproduction schema:
```yaml
openapi: 3.0.1

paths:
# Авторизация
/auth/login:
post:
tags: [auth]
security: []

/token/revoke:
post:
tags: [ token ]

security:
- bearerAuth: []
```

**Expected result:**
`auth/login` path should have `secure: false` (because it is overriden) and `token/revoke` should have `secure: true` (as in global parameter)

**Actual result:**
All methods have `secure: true`:
```ts
auth = {
/**
* No description
*
* @tags auth
* @name LoginCreate
* @request POST:/auth/login
* @secure
*/
loginCreate: (params: RequestParams = {}) =>
this.http.request({
path: `/auth/login`,
method: 'POST',
secure: true,
...params,
}),
}
token = {
/**
* No description
*
* @tags token
* @name RevokeCreate
* @request POST:/token/revoke
* @secure
*/
revokeCreate: (params: RequestParams = {}) =>
this.http.request({
path: `/token/revoke`,
method: 'POST',
secure: true,
...params,
}),
}
```

**Possible solution**

Seems like this condition need to be updated:
https://github.com/acacode/swagger-typescript-api/blob/master/src/routes.js#L562-L565

```js
const hasSecurity = security
? !!security.length
: !!(globalSecurity && globalSecurity.length)
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.