调用后端接口像调用函数一样简单——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

相关推荐
涡能增压发动积20 小时前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o20 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
swg32132120 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
tyung20 小时前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald20 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川20 小时前
深入拆解 Java 内存模型:从原子性、可见性到有序性,彻底搞懂 happen-before 规则
java·后端
元宝骑士20 小时前
FIND_IN_SET使用指南:场景、优缺点与MySQL优化策略
后端·mysql
用户319523703477120 小时前
记一次 PostgreSQL WAL 日志撑爆磁盘的排查
后端
nghxni20 小时前
LightESB PlatformHttp v3.0.0:JSONPath 订单转换 HTTP 路由实战
后端
武子康21 小时前
大数据-263 实时数仓-Canal 增量订阅与消费原理:MySQL Binlog 数据同步实践
大数据·hadoop·后端