acacode / acacode/swagger-typescript-api
Global security parameter should be overriden by local security parameter
- 主要語言
- TypeScript
- 星號
- 4.1k
- 分支
- 436
- PR 合併指標
- 30 天內沒有已合併 PR
描述
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)
```
貢獻指南
這個儲存庫沒有索引到貢獻指南
評估
這個 Issue 還沒有評估資料。