前两周简单介绍了Flutter
基础组件
Dart
编程语言包管理
路由
这周在前几周的基础上,讲一下 Flutter 如何与后端对接。
Serverless ( Functional Computing )
比如:小程序云开发、LeanCloud、Google Firebase
弊端
数据被服务提供商把控
自建对整个框架的理解会更加深入,更有利于维护
Spirng Initializr#
Project 项目管理工具:一般来说
maven
即可Language Java
2 -> 3:javax
-> jakarta
;最低支持 Java 17
简单的例子#
// WelcomeController.java
package studio.qingnan.springdemo;
import lombok.Data;
import org.springframework.web.bind.annotation.*;
@RestController
public class WelcomeController {
@RequestMapping(value = "/")
public Message index() {
Message message = new Message();
message.setId("1");
message.setSender("qingnan");
message.setContent("Hello World!");
return message;
}
@PostMapping("/post")
public Message post(@RequestBody Message message) {
message.setSender("springboot");
return message;
}
@GetMapping("/detail/{id}")
public Message detail(@PathVariable String id) {
Message message = new Message();
message.setId(id);
message.setSender("qingnan");
message.setContent("Hello World!");
return message;
}
}
@Data
class Message {
private String id;
private String sender;
private String content;
}
三个接口代表了两种请求方式和两种获取参数的方式
GET localhost:8080/
POST localhost:8080/post
Content-Type: application/json
{
"id": "1",
"title": "Hello World",
"content": "This is my first post"
}
GET localhost:8080/detail/333333
多层路由#
/api/v2/user/info
可以通过 @RequestMapping("welcome")
来实现。
Flutter 不支持反射式创建对象,只能先得到 Map<String, dynamic>
对象,再通过 map 得到内容,涉及到很多强制类型转换;虽然 json_serializable
可以生成 Flutter 代码,但已经这么麻烦了,为何不用 Protubuf?
MessageConverter
String
JSON