本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
session-service 是一个用于 cBioPortal 会话管理的 RESTful API 服务,基于 MongoDB 存储会话数据。该服务将会话信息以 JSON 格式持久化,具备通用性,可扩展至任何 JSON 对象的存储与管理。其核心功能是为 cBioPortal 相关应用提供会话数据的创建、查询、更新和删除(CRUD)操作接口。
main_session、virtual_study 等),适配不同业务场景(结果页查询、虚拟研究、比较页查询等)。session_service),支持高可用和可扩展的数据存储。http://[服务地址]:[端口]/swagger-ui.html)。virtual_study)、比较页查询(comparison_session)、自定义基因列表(custom_gene_list)等场景的数据存储。适用于基于 cBioPortal 开发的生物信息学平台、需要管理用户会话数据的 Web 应用,或任何需通过 API 接口存储 JSON 结构数据的场景。
通过 docker-compose 启动服务(默认使用项目根目录下的 docker-compose.yml 配置):
# 前台运行(日志实时输出) docker-compose up # 后台运行(detached 模式) docker-compose up -d
后台运行模式下停止服务:
docker-compose down
开发环境中修改代码后,需重建镜像并重启:
docker-compose up --build
服务启动后,访问以下地址验证是否运行正常(返回版本号即表示成功):
curl http://localhost:8080/info
通过 curl 命令测试会话创建接口(默认未启用认证,若启用需添加 --user user:pass 参数):
curl -H "Content-Type: application/json" -X POST http://localhost:8080/api/sessions/test_portal/main_session \ --data '{"title": "我的主门户会话", "description": "这是一个示例会话"}'
成功响应:返回状态码 200 和会话 ID(如 {"id": "57167a52ef86d81afb415aba"})。
默认配置下 MongoDB 端口不对外暴露,需通过容器内部连接:
# 进入 MongoDB 容器(容器名默认:session-service_db_1) docker exec -it session-service_db_1 mongo mongodb://localhost:27017
27017)通过 MongoDB Shell 创建默认数据库 session_service:
mongo # 进入 MongoDB Shell > use session_service # 创建并切换到数据库 session_service
克隆代码仓库并通过 Maven 编译运行:
# 克隆仓库 git clone [***] cd session-service # 编译打包(生成 JAR 包)并启动服务 mvn package -Dpackaging.type=jar && \ java -Dspring.data.mongodb.uri=mongodb://localhost:27017/session-service \ -jar target/session_service-0.1.0.jar
如需部署到 Java Web 容器(如 Tomcat),可生成 WAR 包并自定义配置:
# 创建配置文件目录 mkdir src/main/resources/ # 复制自定义配置文件(示例配置见 4.3 节) cp /path/to/custom.config src/main/resources/ # 编译生成 WAR 包 mvn package
通过配置文件(默认路径 src/main/resources/application.properties 或 application.yml)自定义服务行为,支持以下核心参数:
| 参数键 | 说明 | 默认值 |
|---|---|---|
spring.data.mongodb.database | MongoDB 数据库名 | session_service |
spring.data.mongodb.host | MongoDB 主机地址 | localhost |
spring.data.mongodb.port | MongoDB 端口 | 27017 |
server.contextPath | 服务上下文路径(非根路径时配置) | / |
server.port | 服务监听端口 | 8080 |
security.basic.enabled | 是否启用基本认证 | false(默认关闭) |
spring.security.user.name | 基本认证用户名(启用认证时必填) | -(需手动配置) |
spring.security.user.password | 基本认证密码(启用认证时必填) | -(需手动配置) |
通过环境变量覆盖默认配置,优先级高于配置文件:
| 环境变量名 | 说明 | 示例值 |
|---|---|---|
SERVER_PORT | 服务监听端口 | 8090 |
application.properties)# MongoDB 配置 spring.data.mongodb.database=session_service spring.data.mongodb.host=mongodb-host spring.data.mongodb.port=27017 # 服务端口与上下文路径 server.port=8081 server.contextPath=/session-service # 启用基本认证 security.basic.enabled=true spring.security.user.name=admin spring.security.user.password=secret123
服务启动后,通过 Swagger UI 查看完整 API 文档:
http://[服务地址]:[端口]/swagger-ui.html
(若启用基本认证,需通过 [***][服务地址]:[端口]/swagger-ui.html 访问)
服务支持以下预定义会话类型,用于区分不同业务场景:
| 类型 | 描述 |
|---|---|
main_session | 表示结果页查询会话 |
virtual_study | 表示从研究摘要页保存的样本子集 |
group | 类似 virtual_study,用于比较页 |
comparison_session | 表示比较页查询会话 |
settings | 表示 cBio 页面配置(通过 page 字段标识页面类型) |
custom_data | 存储研究视图页的自定义图表数据 |
genomic_chart | 表示用户在研究视图页添加的基因组图表 |
custom_gene_list | 表示用户在查询页添加的自定义基因列表 |
请求:POST http://[服务地址]:[端口]/api/sessions/{source}/{type}/
source:会话来源(如 msk_portal,区分不同应用)type:会话类型(需为 6.2 节中定义的有效类型)示例:
curl -H "Content-Type: application/json" --user user:pass -X POST \ http://localhost:8080/api/sessions/msk_portal/main_session \ --data '{"title": "我的主门户会话", "description": "这是一个示例"}'
响应:
200,返回会话 ID
{"id": "57167a52ef86d81afb415aba"}
400(无效类型或空请求体)请求:GET http://[服务地址]:[端口]/api/sessions/{source}/{type}/
source:会话来源type:会话类型响应:
200,返回会话列表(包含 id、data、source、type)
[ { "id": "57167a52ef86d81afb415aba", "data": {"title": "我的主门户会话", "description": "这是一个示例"}, "source": "msk_portal", "type": "main_session" } ]
请求:GET http://[服务地址]:[端口]/api/sessions/{source}/{type}/{id}
id:会话 ID(创建会话时返回)响应:
200,返回单个会话详情404(会话不存在)请求:PUT http://[服务地址]:[端口]/api/sessions/{source}/{type}/{id}
示例:
curl -H "Content-Type: application/json" --user user:pass -X PUT \ http://localhost:8080/api/sessions/msk_portal/main_session/57167a52ef86d81afb415aba \ --data '{"title": "更新后的主门户会话", "description": "这是更新示例"}'
响应:
200(无响应体)400(空请求体)或 404(会话不存在)请求:DELETE http://[服务地址]:[端口]/api/sessions/{source}/{type}/{id}
响应:
200(无响应体)404(会话不存在)请求:GET http://[服务地址]:[端口]/api/sessions/{source}/{type}/query?field={field}&value={value}
field:查询字段(如 data.title)value:字段值(URL 编码)示例:
curl --user user:pass "http://localhost:8080/api/sessions/msk_portal/main_session/query?field=data.title&value=我的主门户会话"
响应:状态码 200,返回匹配的会话列表。
source、type 和 id 参数区分大小写(如 MSK_portal 与 msk_portal 视为不同来源)。--user {username}:{password} 传递认证信息。免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429