acacode / acacode/swagger-typescript-api

Global security parameter should be overriden by local security parameter

Aberta
#348 0 comentários 1 reação 0 responsáveis Ver no GitHub
bug
Linguagem predominante
TypeScript
Estrelas
4.1k
Forks
436
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

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)
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.