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

相关推荐
uzong16 小时前
一次慢接口背后,竟藏着40+种可能!你中过几个
后端·面试·程序员
G探险者17 小时前
滴滴P0级故障背后:互联网公司是如何分级处理线上事故的?
后端
G探险者17 小时前
从 Tomcat 与 Jetty 的对比,聊聊影响一个服务并发能力的关键因素
后端
你的人类朋友18 小时前
“签名”这个概念是非对称加密独有的吗?
前端·后端·安全
幼稚园的山代王18 小时前
go语言了解
开发语言·后端·golang
kkjt013018 小时前
{MySQL查询性能优化索引失效的八大场景与深度解决方案}
后端
ss27318 小时前
手写MyBatis第107弹:@MapperScan原理与SqlSessionTemplate线程安全机制
java·开发语言·后端·mybatis
橙子家19 小时前
log4net 简介以及简单示例(.net8)
后端
间彧19 小时前
Spring Boot分布式WebSocket实现指南:项目实战与代码详解
后端
间彧19 小时前
Spring Boot集成WebSocket项目实战详解
后端