如何利用Flutter来写后端 服务端应用

发布于:2024-03-02 ⋅ 阅读:(54) ⋅ 点赞:(0)

前言

Flutter是谷歌推出的一款跨平台开发框架,现在属于此领域star最多的框架,其被广泛应用于构建前台界面,但或许很少人知道,他也可以写后端应用。

本文主角

flutter非常著名的getx库推出的get server

jonataslaw/get_server: A backend server that makes it possible to program with Flutter syntax and reuse existing code (github.com)

基本功能

返回字符串的基础server

void main() {
  runApp(GetServerApp(
    getPages: [
      GetPage(name: '/', page:()=> Home()),
    ],
  ));
}

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Text("Welcome to GetX");
  }
}

可以发现,这就是我们非常熟悉的flutter语法

这个后台应用的作用就是访问‘/’则返回请求者文字

返回json的server

class Home extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Json({
      "fruits": ["banana", "apple", "orange"]
    });
  }
}

这个写法也十分的flutter

上传图片的接口

class Home extends GetView {
  @override
  Widget build(BuildContext context) {
    return MultiPartWidget(
      builder: (context, upload) {
        return Json({
           "nameFile": upload.name,
           "mimeType": upload.mimeType,
           "fileBase64": "${base64Encode(upload.data)}",
        });
      },
    );
  }
}

亮点

返回我们写好的flutter页面

在官方中提到

中文即为

您只需从 Flutter 项目中复制 Web 文件夹,然后粘贴到服务器文件中的目录即可。 Flutter web 生成一个 html 文件,该 html 文件调用一个 js 文件,该文件又请求几个必须位于公共文件夹中的文件。 要将 Flutter Web 文件夹设为公共文件夹,只需将其添加到您的 GetServer 中即可。 这样,当您进入服务器时,您将自动定向到使用 Flutter 制作的站点。

void main() {
  runApp(
    GetServerApp(
      home: FolderWidget('web'),
      getPages: [
        GetPage(name: '/api', page: () => ApiPage()),
      ],
    ),
  );
}

JWT鉴权

void main() {
  runApp(
   GetServerApp(
    jwtKey: 'your key here',
   ),
  );
}

final claimSet = JwtClaim(
  expiry: DateTime.now().add(Duration(days: 3)),
  issuer: 'get is awesome',
  issuedAt: DateTime.now(),
);

var token = TokenUtil.generateToken(claim: claimSet);

GetPage(
  name: '/awesome-route',
  method: Method.get,
  page: () => YourPage(),
  needAuth: true,
),

除此之外--websock,类js,node风格可以更多自由探索

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到