Skip to content

via-red/dify-router

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dify-router

License

一个轻量级的Dify请求转发服务,基于Spring Boot实现,支持多应用配置和用户认证。

功能特性

  • ✅ 多应用路由配置
  • ✅ 基于路径前缀的智能路由匹配
  • ✅ 可扩展的用户认证机制
  • ✅ 支持JSON和Multipart请求
  • ✅ 完善的日志记录

快速开始

  1. 添加依赖到你的Spring Boot项目:
<dependency>
    <groupId>org.hzm</groupId>
    <artifactId>dify-router</artifactId>
    <version>1.0.0</version>
</dependency>
  1. 配置应用路由:
router:
  appConfigs:
    materials:  # 应用名称
      user-auth: true  # 启用用户认证
      base-url: http://my.dify.com/v1  # 目标服务地址
      start-with-url: /api/dify_proxy/materials  # 路由前缀
      api-key: app-xxx  # API密钥
  1. 启动应用,所有匹配/api/dify_proxy/materials/**的请求将被转发到http://my.dify.com/v1

详细配置

多应用配置

router:
  appConfigs:
    app1:
      user-auth: true
      base-url: http://service1.example.com
      start-with-url: /api/app1
      api-key: key1
    app2:
      user-auth: false  
      base-url: http://service2.example.com
      start-with-url: /api/app2
      api-key: key2

路由匹配规则:

  • 按路径前缀匹配
  • 前缀长的优先匹配
  • 未匹配的请求不会被转发

用户认证

默认从以下位置提取用户信息:

  1. URL参数: ?user=xxx
  2. JSON请求体: {"user": "xxx"}
  3. Multipart表单: user=xxx

如需自定义验证逻辑,实现UserValidator接口:

@Component
public class CustomUserValidator implements UserValidator {
    @Override
    public void validateUser(String user, Map.Entry<String, RouterConfig.RouterAppConfig> appConfig, String path) {
        // 自定义验证逻辑
    }
}

贡献指南

欢迎提交Pull Request或Issue。

  1. Fork仓库
  2. 创建特性分支 (git checkout -b feature/xxx)
  3. 提交更改 (git commit -am 'Add some feature')
  4. 推送到分支 (git push origin feature/xxx)
  5. 创建Pull Request

许可证

MIT

About

在服务端做dify请求的转发

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages