首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用swagger码生成动态伪basePath的URI参数?

如何使用swagger码生成动态伪basePath的URI参数?
EN

Stack Overflow用户
提问于 2017-08-09 05:54:40
回答 1查看 2.4K关注 0票数 4

我有一个很简单的问题:)

根据伪文档,它们通过api函数basePath 就像这样传递URI参数,从而支持动态更改假冒伪劣客户端对象的URI。

很好的例子:

代码语言:javascript
运行
AI代码解释
复制
interface MyClient {
    @RequestLine("GET /internal-service")
    String internalService(URI baseUrl);
}

问题是,我正在使用swagger,他从yaml文件中生成API,并在所有函数参数中添加@Param注释,这对我不好。

的坏例子:

代码语言:javascript
运行
AI代码解释
复制
interface MyClient {
    @RequestLine("GET {baseUrl}/internal-service")
    String internalService(@Param("baseUrl") String host);
}

有没有一种方法可以使swagger生成器生成带有URI param的API,而不需要@Param注释?

期望的结果示例:

代码语言:javascript
运行
AI代码解释
复制
interface MyClient {
    @RequestLine("POST /internal-service")
    String internalService(URI baseUrl, @Param("someParam") String someParam);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-13 07:55:46

初步解决办法:

经过一些调查之后,我意识到swagger-码元2.2.3中不支持将URI参数作为client函数的一部分。

但是在swagger-codegen maven-plugin配置中有一个选项“带胡子模板的templateDirectory目录”,它为包含胡子模板的文件夹提供路径,该文件夹将接受该文件夹中的模板,并覆盖现有的同名文件夹。

示例:

代码语言:javascript
运行
AI代码解释
复制
        <plugin>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>my-project-api-client-kit</id>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>${project.build.directory}/my-project-api.yaml</inputSpec>
                        <language>java</language>
                        <configOptions>
                            <dateLibrary>java8</dateLibrary>
                            <sourceFolder>src/main/java</sourceFolder>
                        </configOptions>
                        <modelPackage>my.project.ck.resources.models</modelPackage>
                        <apiPackage>my.project.ck.resources.interfaces</apiPackage>
                        <library>feign</library>
                        <templateDirectory>/myTemplateFolder/</templateDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>

在自定义模板文件夹中,使用附加的"URI basePath“参数放置您自己的basePath文件:

代码语言:javascript
运行
AI代码解释
复制
...
{{#returnType}}{{{returnType}}} {{/returnType}}{{^returnType}}void {{/returnType}}{{nickname}}(URI basePath, {{#allParams}}{{^isBodyParam}}{{^legacyDates}}@Param("{{paramName}}") {{/legacyDates}}{{#legacyDates}}@Param(value="{{paramName}}", expander=ParamExpander.class) {{/legacyDates}}{{/isBodyParam}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}});
...

注意: Swagger提供了许多用于各种用途的模板,请确保获取和修改正确的api.mustache模板文件。在上面的示例中,我修改(并覆盖)了java.Library aries.fifen/api.mustrahe文件,因为这也是我的插件配置的文件(如示例中所示)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45592746

复制
相关文章
如何基于 Swagger 使用 OpenAPI Generator 生成 JMeter 脚本?
作为性能工程师,我们花了大量的时间编写脚本。如果我们能找到一种能自动生成脚本的方法,那将是一个提高的能效的好事情。
高楼Zee
2021/03/16
5.3K0
Swagger技术(接口文档实时动态生成工具)
接口文档对于前后端开发人员都十分重要。 尤其近几年流行前后端分离后接口文档又变成重中之重。 接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新, 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不规范,不及时更新。 当时自己写的时候确实最烦去写接口文档。这种痛苦只有亲身经历才会牢记于心。 如果接口文档可以实时动态生成就不会出现上面问题。 Swagger 可以完美的解决上面的问题。
时间静止不是简史
2020/07/24
10.6K1
Swagger技术(接口文档实时动态生成工具)
字节码编程|使用Javassist动态生成Hello World
字节码编程在实际的业务开发(CRUD)中并不常用,但是随着网络编程,RPC、动态字节码增强技术和自动化测试以及零侵入APM监控的不断发展与大量使用,越来越多的技术需要使用到字节码编程。
冰河
2022/06/15
5770
字节码编程|使用Javassist动态生成Hello World
使用 swagger 生成Flask RESTful API
REST(英文:Representational State Transfer,又称具象状态传输)是Roy Thomas Fielding博士于2000年在他的博士论文[1] 中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。
goodspeed
2020/12/25
3.6K0
使用 swagger 生成Flask RESTful API
使用Swagger生成简单接口文档
// Swagger2 compile 'io.springfox:springfox-swagger2:2.8.0' compile 'io.springfox:springfox-swagger-ui:2.8.0'
JQ实验室
2022/02/09
7940
【 .NET Core 3.0 】框架之三 || swagger的使用
上文中已经说到,单纯的项目接口在前后端开发人员使用是特别不舒服的,那所有要推荐一个,既方便又美观的接口文档说明框架,当当当,就是Swagger,随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染、后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远。
老张的哲学
2022/04/10
9590
【 .NET Core 3.0 】框架之三 || swagger的使用
使用 swagger 生成规范化的RESTful API 代码
REST(英文:Representational State Transfer,又称具象状态传输)是Roy Thomas Fielding博士于2000年在他的博士论文[1] 中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。
goodspeed
2020/12/25
6.2K0
使用 swagger 生成规范化的RESTful API 代码
python 如何使用swagger
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128777.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/28
4.1K0
python 如何使用swagger
使用go-swagger为golang API自动生成swagger文档
Swagger是一个简单但功能强大的API表达工具。它具有地球上最大的API工具生态系统,数以千计的开发人员,使用几乎所有的现代编程语言,都在支持和使用Swagger。使用Swagger生成API,我们可以得到交互式文档,自动生成代码的SDK以及API的发现特性等。
李海彬
2018/07/26
10.5K2
使用go-swagger为golang API自动生成swagger文档
如何在asp.net中动态生成验证码
现在越来越多的网站喜欢搞个验证码出来,而且各个语言基本上都能做到,今天我来一个C#写的!
Java架构师必看
2021/03/22
2.1K0
如何生成ISSN码
ISSN是国际标准期刊号的意思,它们通常以一定的刊名发行,以“年月日”,“年月”或数字标明卷、号、期数。市面上常见的期刊、杂志、丛刊、年刊等大都属于国际规范期刊的编号与编码范围。每一种期刊在注册注销时,就得到一个专属的ISSN,一个 ISSN 只对应一个刊名;而一个刊名也只要一个 ISSN。所以当该刊名变更时,就需要另申请一个ISSN。假如期刊停刊,那么被删除的 ISSN 也不会被其它期刊再运用。每组 ISSN 系由八位数字构成,分前后两段,每段四位数,其中后段的最末一位数字为校验号。ISSN与EAN的对应关系为:977 + ISSN前7码 + 00 + EAN检查码。下面我们就详细介绍如何生成ISSN条码。
神奇像素科技
2022/01/11
5980
如何生成ISSN码
使用swagger作为restful api的doc文档生成
记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情。也许多点,也许少点。甚至,接口总是需要适应新需求的,修改了,增加了,这份文档维护起来就很困难了。于是发现了swagger,自动生成文档的工具。
朝雨忆轻尘
2019/06/19
2.7K0
使用swagger作为restful api的doc文档生成
使用swagger作为restful api的doc文档生成
初衷 记得以前写接口,写完后会整理一份API接口文档,而文档的格式如果没有具体要求的话,最终展示的文档则完全决定于开发者的心情。也许多点,也许少点。甚至,接口总是需要适应新需求的,修改了,增加了,这份文档维护起来就很困难了。于是发现了swagger,自动生成文档的工具。 swagger介绍 首先,官网这样写的: Swagger – The World's Most Popular Framework for APIs. 因为自强所以自信。swagger官方更新很给力,各种版本的更新都有。swagger
Ryan-Miao
2018/03/14
2.4K0
使用swagger作为restful api的doc文档生成
生成带参数的二维码
为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口
很酷的站长
2022/12/28
8330
生成带参数的二维码
jdk动态代理(动态生成字节码与反射机制的结合)
       java jdk动态代理其实是动态生成字节码与反射机制的一个结合,说到反射机制很多人都用到过反射,只要得到对应类的Class对象即可,调用方法,获取成员变量等等,那么jdk的动态代理就是在程序运行的过程中,动态的将我们维护的检查性的代码,放在正常的业务代码之前,那么怎么调用我正常的业务代码呢,因为业务可能有很多种,也就是说可能会有不同的类,但是都要执行相同的检查性代码,如我们要取钱,或者是修改身份证,都必须验证通过才可以,这显然是两个类,一个是Money,一个是ID,所以我们在调用正常业务代码的时候,其实不知道我们调用的是谁的代码,这时候就用到反射,通过反射,动态的识别类型,然后再调用方法,如我们要取钱,那么传入的应该是一个Money的实例,通过这个实例的getDeclaredMethod,或者是getMethod就可以,获取对应实例的方法,然后即可动态调用方法,只要在用反射前,加入我们验证的代码即可,这时反射在动态代理中的应用。这部分代码需要我们自己实现InvocationHandler接口,实现其中的invoke方法,在这个方法中,就是我们上述反射的实现。当然为了调用到对应类的方法,我们实现的invocationHandler类中,需要保存我们要代理类的实例。
actionzhang
2022/11/30
5420
开发 | 小程序如何生成带参数二维码?
许多小程序开发者,都需要获取进入小程序不同页面的二维码:包括常见的四方形「QR 码」和新推出的「小程序码」。
知晓君
2018/08/01
5.3K0
开发 | 小程序如何生成带参数二维码?
Spring MVC中使用Swagger生成API文档
实际项目中非常需要写文档,提高Java服务端和Web前端以及移动端的对接效率。 听说Swagger这个工具,还不错,就网上找了些资料,自己实践了下。 一:Swagger介绍Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档,同时swagger-ui还可以测试spring restful风格的接口功能。 官方网站为:http://swagger.io/ 中文网站:http://www.sosoapi.com
Java架构师历程
2018/09/26
2.1K0
Spring MVC中使用Swagger生成API文档
如何使用 Java 生成二维码?
 QRCode生成二维码网址:http://swetake.com/qrcode/index-e.html
芋道源码
2019/10/24
2.2K0
使用Swagger生成ASP.NET Web API的文档
在本文中,我将介绍一些可以为ASP.NET Web API生成文档的方法。除非你从未生成过Web API网站,否则你将会意识到,默认模板已经包含了为你可能实现的API 生成文档的功能,其中的一个示例位
花落花飞去
2017/12/27
3.4K0
『Swagger 上手』
大纲 问题 RestfulAPI API 动作 请求:Url、Body 返回信息:Status_code、Response 在开发过程中,经常会遇到和其他组件或者服务进行交互的情况,和服务器交互,好理解,平时的上网就是在和服务器交互:向服务器发送请求,服务器接收到请求之后,根据请求的动作,进行相应的动作响应。 可以看出这种方法方式是通过:发送请求,返回响应的这一套动作进行的,即客户端、服务器模式,发送请求的一端一般认为是客户端,返回响应的一端认为是服务器端。 软件设计领域,将这一套机制统一起来,方便进行通信
谢伟
2018/06/06
1.4K0

相似问题

利用Swagger生成Netflix伪码

10

如何在OpenApi中添加basepath,以便使用maven自动生成basepath?

120

如何为Springfox Swagger2.0更改basePath

40

如何在swagger2.0中定义basePath

10

用ITuple生成伪码错误

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文