调用后端接口像调用函数一样简单——Fun改变了我的开发方式

你是否曾经梦想过后端接口调用能像本地函数调用一样简单?

几个月前,我厌倦了繁琐的API对接工作。每次添加新功能,都要定义路由、编写控制器、处理请求参数、定义响应格式...更痛苦的是,前端同事总是因为接口文档更新不及时而出错。

我想要的是:写一个Go方法,前端就能直接调用,就像调用本地函数一样自然。

于是,Fun诞生了!

看看这个神奇的例子:

go 复制代码
// 后端:定义一个用户服务
type UserService struct {
    fun.Ctx // 嵌入上下文获取请求信息
}

type GetUserDto struct {
    UserId int64 
}

// 写一个方法,它就自动变成可调用的接口
func (s *UserService) GetUser(dto GetUserDto) *User {
    return &User{
        Id:   dto.UserId,
        Name: "张三",
        Age:  25,
    }
}

type CreateUserDto struct {
    Name string 
    Age  int    `validate:"min=0,max=150"`
}

func (s *UserService) CreateUser(dto CreateUserDto) *User {
    // 处理创建用户逻辑
    return &User{
        Id:   generateUserId(),
        Name: dto.Name,
        Age:  dto.Age,
    }
}

func main() {
    fun.BindService(UserService{})
    fun.Start(3000) // 服务启动!
}

前端的魔法时刻来了:

typescript 复制代码
// 前端:调用后端方法就像调用本地函数
import fun from './service/fun';

const client = fun.create("ws://localhost:3000");

// 这看起来像本地函数调用,但实际调用了后端
const user = await client.userService.getUser({ userId: 123 });
console.log(user); // { id: 123, name: "张三", age: 25 }

// 创建用户也一样简单
const newUser = await client.userService.createUser({
    name: "李四",
    age: 30
});
console.log(newUser); // { id: 456, name: "李四", age: 30 }

// 完整的类型提示和自动补全!

再也不用手写axios请求、定义接口类型、处理各种异常情况。写好方法,调用方法,就这么简单!

Fun Framework还内置了企业级特性:

  • 🔄 自动依赖注入 - 告别手动初始化
  • 🛡️ 参数验证 - 自动校验输入参数
  • 📝 结构化日志 - 快速定位问题
  • ⚡ 类型安全 - 编译时捕获错误
  • 🎯 自动生成客户端 - 前后端无缝协作

看看 - 一个现代化的协作平台,展示了这个框架的强大能力。

从"Hello World"到复杂的企业应用,Fun Framework让后端开发变得前所未有的简单。忘掉复杂的REST API设计,忘掉繁琐的接口对接,专注于真正有价值的业务逻辑。

如果你也想体验这种革命性的开发方式,不妨试试Fun Framework,让你的代码像诗一样优雅。

项目地址:github.com/fun-go/fun

官网:fungo.ink

基于fun构建的网站 cyi.cc

相关推荐
Shawn_Shawn3 小时前
Spring-Ai-Mcp-Server 快速入门
后端·agent·mcp
心月狐的流火号3 小时前
分布式事务XA模式:基于数据库的2PC
分布式·后端
二闹3 小时前
一文搞懂Python装饰器,还能用它给代码加权限锁!
后端·python
大鱼七成饱3 小时前
10分钟搞懂 Rust 的 & 怎么用
后端
DS小龙哥4 小时前
基于STM32设计的智能音乐练习辅助系统
后端
_風箏4 小时前
SpringBoot【集成p6spy】使用p6spy-spring-boot-starter集成p6spy监控数据库(配置方法举例)
后端
_風箏4 小时前
SpringBoot【集成Druid】监控数据库报错 Failed to bind properties under ‘‘ to javax.sql.DataS
后端
shepherd1114 小时前
深入解析Flowable工作流引擎:从原理到实践
java·后端·工作流引擎
凯哥19704 小时前
vLLM快速入门及安装指南
后端