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

相关推荐
Moonbit11 小时前
MoonBit Pearls Vol.9:正则表达式引擎的两种实现方法:导数与 Thompson 虚拟机
后端·正则表达式·编程语言
文心快码BaiduComate12 小时前
一人即团队,SubAgent引爆开发者新范式
前端·后端·程序员
掘金一周12 小时前
2025年还有前端不会Nodejs ?| 掘金一周 9.25
android·前端·后端
RoyLin12 小时前
前端·后端·node.js
泉城老铁12 小时前
springboot常用的注解需要了解,开发必备
spring boot·后端
RoyLin13 小时前
C++ 基础与核心概念
前端·后端·node.js
aiopencode13 小时前
Charles 抓包 HTTPS 原理详解,从 CONNECT 到 SSL Proxying、常见问题与真机调试实战(含 Sniffmaster 补充方案)
后端
泉城老铁13 小时前
springboot 框架集成工作流的开源框架有哪些呢
spring boot·后端·工作流引擎
aloha_13 小时前
Ubuntu/Debian 系统中,通过包管理工具安装 Redis
后端
Java水解13 小时前
深入探索Spring:Bean管理与Spring Boot自动配置原理
后端·spring