ServiceStack v5.1 具有added native support for Dart and Flutter,您可以在其中从远程 URL 生成端到端的 Typed API,例如:
$ npm install -g @servicestack/cli
$ dart-ref https://www.techstacks.io
.NET Core 2.0 以及任何.NET's popular hosting options 都支持此功能。上面的示例为.NET Core 2.0 TechStacks project 生成了一个Typed API。
HelloFlutter App 显示了使用类型化 API 调用 .NET Core 2.0 和经典 ASP.NET 应用后端的示例:
要调用任何服务,您只需导入 servicestack Dart package 和生成的 DTO,例如:
import 'package:servicestack/client.dart';
import 'techstacks.dtos.dart';
然后创建一个JsonServiceClient 的实例,并使用您的远程 URL 进行配置,例如:
var client = new JsonServiceClient("https://www.techstacks.io");
然后您可以像任何异步 API 一样在 Flutter 小部件中调用它:
class HelloFlutter extends StatefulWidget {
@override
State<StatefulWidget> createState() => new HelloFlutterState();
}
class HelloFlutterState extends State<HelloFlutter> {
//State for this widget
String result = "";
@override
Widget build(BuildContext context) {
//...
new RaisedButton(
child: new Text("Async"),
onPressed: () async {
var r = await client .get(new Hello(name: "Async"));
setState(() {
result = r.result;
});
},
),
//...
new Text(result),
}
}
有关更多信息,请参阅ServiceStack's native Dart support 的文档。