使用具有OAuth2客户端凭据的Swagger OpenAPI 3生成API客户端

时间:2019-02-18 03:50:18

标签: openapi swagger-codegen

我正在使用Swagger OpenAPI 3.0.2版本描述我的API。

我从Swagger gihub存储库中构建了swagger-codegen 3.0.5快照。

我想要一个Java客户机,该客户机将为client_credentials的授予类型获取OAUTH2令牌。我想要客户端凭据,因为这是一台与另一台计算机通信的机器,我不是在要求用户提供凭据。我的规格文件中包含以下内容:

securitySchemes: oAuth2ClientCredentials: type: oauth2 description: Standard OAUTH2 flows: clientCredentials: tokenUrl: my_token_url scopes: {} security: - oAuth2ClientCredentials: []

我想要一个带有客户机ID和客户机机密的基本身份验证标头,其中标准的base64编码具有grant_type作为URL编码形式。这是非常标准的OAuth2身份验证。

我似乎有时会获得OAuth身份验证的代码,有时却不会。除了我手动证明访问令牌之外,python库对OAuth而言一无所有。除非我要求将其改造为基础库,否则Java库没有它,但它会生成Bearer Authentication标头,而不是Basic Authentication Header。 Retrofit2甚至无法正常工作,车把模板中有一个非法字符,使车把倒钩。

那么当人们拥有客户ID和客户机密时,人们将如何获取他们的访问令牌?您是否编写代码以自己获取访问令牌?还是有某种神奇的方法来获取swagger-codegen-cli为我生成代码,具体取决于我使用的库?

如果有人设法通过swagger-codegen-cli生成使用OpenAPI 3.0规范的OAuth 2客户端凭据所需的一切,请告诉我。

0 个答案:

没有答案