apicurio依赖于keycloak,这两者都是运行在wildfly下的java程序
- 下载和解压程序包
分别到keycloak和apicurio的官网下载zip压缩包,解压(假设分别解压到~/java/keycloak/keycloak-11.0.3
和~/java/apicurio/apicurio-studio-0.2.47.Final
) - 新建启停脚本
先在~/java/keycloak/下新建启停脚本:
- end.sh:
#!/bin/sh
cd `dirname $0`
cd ./key*/bin
./jboss-cli.sh --controller=127.0.0.1:29990 --connect --command=:shutdown
- start.sh:
#!/bin/sh
cd `dirname $0`
./end.sh
./keycloak*/bin/standalone.sh \
-Djboss.socket.binding.port-offset=20000 \
-b 0.0.0.0 \
> log.txt &
start.sh中的jboss.socket.binding.port-offset
为端口的基准偏移量(记为offset),end.sh中的controller
参数所使用
的端口号为[offset+9990]
然后,在~/java/apicurio/下建立启停脚本:
- end.sh:
#!/bin/sh
cd `dirname $0`
cd ./apicurio*/bin
./jboss-cli.sh --controller=127.0.0.1:29991 --connect --command=:shutdown
- start.sh:
#!/bin/sh
cd `dirname $0`
./end.sh
./apicurio*/bin/standalone.sh \
-c standalone-apicurio.xml \
-Djboss.socket.binding.port-offset=20001 \
-b 0.0.0.0 \
> log.txt &
内容与keycloak的脚本类似,但调用的bin路径不同,端口也不同,另外多一个apicurio自身的参数用于指定配置文件(-c standalone-apicurio.xml
)
- 在keycloak中为apicurio创建realm
- 在
~/java/keycloak/keycloak-11.0.3/bin
下执行命令./add-user-keycloak.sh -r master -u admin -p admin
创建管理员用户 - 执行
~/java/keycloak/start.sh
启动服务 - 访问地址http:[ip]:[offset+8080]可进入keycloak管理页面(在本例中为http://127.0.0.1:28080),用刚才创建的管理员账号登录(用户名admin,密码admin),登陆后可以在右上角账户菜单中修改密码
- 鼠标放在左上角的“Master”上,点击下拉菜单中的
Add realm
- 下载https://github.com/Apicurio/apicurio-studio/blob/master/distro/openshift/auth/realm.json到本地,替换其中的
APICURIO_UI_URL
为实际的apicurio服务前端页面地址(在本例中应替换为http://127.0.0.1:28081),然后在Add realm
页面上选择导入此文件,导入完成后点击Create
- 配置apicurio的登录主题以避免空指针错误
在keycloak管理界面点击菜单Configuration
->Clients
,然后选择编辑apicurio-studio
,找到下拉框Login Theme
,选择keycloak
,保存
- 配置apicurio,让其使用刚才创建的keycloak realm
- 编辑
~/java/apicurio/apicurio-studio-0.2.47.Final/standalone/configuration/standalone-apicurio.xml
修改其中system-properties下的apicurio.kc.auth.rootUrl
和apicurio.kc.auth.realm
以使用本地的keycloak服务
<system-properties>
<property name="apicurio.kc.auth.rootUrl" value="http://localhost:28080/auth"/>
<property name="apicurio.kc.auth.realm" value="apicurio"/>
<property name="apicurio.hub.storage.jdbc.type" value="h2"/>
<property name="apicurio.hub.storage.jdbc.init" value="true"/>
</system-properties>
-
启动apicurio服务
执行~/java/apicurio/apicurio-studio-0.2.47.Final/start.sh
-
开始使用本地的apicurio编辑openapi文档
打开http://127.0.0.1:28081登录(第一次使用需要先注册账号)
网友评论