当前位置: 首页 > news >正文

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

前言

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 {@overrideWidget build(BuildContext context) {return Text("Welcome to GetX");}
}

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

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

返回json的server

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

这个写法也十分的flutter

上传图片的接口

class Home extends GetView {@overrideWidget 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风格可以更多自由探索

http://www.lryc.cn/news/309162.html

相关文章:

  • 数据页和缓存页(BufferPool)
  • LibreOJ 136. 最小瓶颈路 题解 最小生成树 倍增
  • 前端学习第三天-css基础
  • 各种使用chatgpt prompts技巧
  • 基于单片机的企业指纹考勤系统设计
  • JUC(java.util.concuurrent)的常见类介绍
  • 【中科院计算所】WSDM 2024冠军方案:基于大模型进行多文档问答
  • Android提供了多种方式来打开特定文件夹中的视频
  • 基于django的购物商城系统
  • Swagger3 使用详解
  • JVM 第二部分-2(堆,方法区)
  • 蓝桥杯Java B组历年真题(2013年-2019年)
  • 你是谁,便会遇见谁
  • Linux/Centos 部署静态IP,解决无法访问目标主机、Destination Host Unreachable、无法ping通互联网的问题
  • 在学习云原生的时候,一直会报错ImagePullBackOff Back-off pulling image
  • Android Activity跳转详解
  • 计算机网络(2)-----数据链路层
  • 贪心算法(算法竞赛、蓝桥杯)--修理牛棚
  • 【AIGC】微笑的秘密花园:红玫瑰与少女的美好相遇
  • vue3 中 主题定制
  • 数据分析之Logistic回归分析(二元逻辑回归、多元有序逻辑回归、多元无序逻辑回归)
  • 【c++】通讯录管理系统
  • Tomcat 架构
  • Spring 整合mybatis
  • centos7升级openssl_3
  • nvidia a100-pcie-40gb环境安装
  • 嵌入式 Linux 下的 LVGL 移植
  • js同步和异步请求
  • 【Leetcode】2369. 检查数组是否存在有效划分
  • Laravel Octane 和 Swoole 协程的使用分析