Flutter HTTP服务插件pip_services4_http的使用
Flutter HTTP服务插件pip_services4_http的使用
HTTP/REST通信组件用于Dart
该模块是多语言微服务工具包Pip.Services的一部分。
http模块提供了使用本地调用或HTTP(S)协议进行同步通信的功能。它包含服务器端和客户端实现。
该模块包含以下软件包:
- Auth - 身份验证和授权组件
- Build - HTTP服务工厂
- Clients - 从微服务配置中检索连接设置的机制,并为这些设置提供给客户端和服务
- Controller - 通过HTTP/REST协议连接的基本控制器实现,并使用HTTP上的命令模式
快速链接:
使用
在您的包的pubspec.yaml
文件中添加以下依赖项:
dependencies:
pip_services4_http: version
现在可以从命令行安装包:
pub get
开发
开发时需要安装以下前提条件:
- Dart SDK 3
- Visual Studio Code 或您选择的其他IDE
- Docker
安装依赖项:
pub get
运行自动化测试:
pub run test
生成API文档:
./docgen.ps1
在提交更改之前,运行docker化的构建和测试:
./build.ps1
./test.ps1
./clear.ps1
联系方式
Dart版本的Pip.Services由以下人员创建和维护:
- Sergey Seroukhov
- Levichev Dmitry
- Aleksey Dvoykin
文档由以下人员编写:
- Mark Makarychev
- Levichev Dmitry
示例代码
import 'package:pip_services4_components/pip_services4_components.dart';
import 'package:pip_services4_data/pip_services4_data.dart';
import '../test/controllers/DummyCommandableHttpController.dart';
import './Dummy.dart';
import 'DummyCommandableHttpClient.dart';
import 'DummyService.dart';
void main() async {
var restConfig = ConfigParams.fromTuples([
'connection.protocol',
'http',
'connection.host',
'localhost',
'connection.port',
3000
]);
DummyCommandableHttpController controller;
DummyCommandableHttpClient client;
var service = DummyService();
controller = DummyCommandableHttpController();
controller.configure(restConfig);
var references = References.fromTuples([
Descriptor('pip-services-dummies', 'service', 'default', 'default', '1.0'),
service,
Descriptor('pip-services-dummies', 'controller', 'http', 'default', '1.0'),
controller
]);
controller.setReferences(references);
await controller.open(null);
client = DummyCommandableHttpClient();
client.configure(restConfig);
client.setReferences(References());
await client.open(null);
var dummy1 = Dummy(id: null, key: 'Key 1', content: 'Content 1');
var dummy2 = Dummy(id: null, key: 'Key 2', content: 'Content 2');
// 创建一个dummy
try {
var dummy = await client.createDummy(null, dummy1);
// 处理创建的项目
dummy1 = dummy!;
} catch (err) {
// 错误处理
}
// 创建另一个dummy
try {
var dummy = await client.createDummy(null, dummy2);
// 处理第二个创建的项目
dummy2 = dummy!;
} catch (err) {
// 错误处理
}
// 获取所有dummy
try {
var dummies = await client.getDummies(
null, FilterParams(), PagingParams(0, 5, false));
print(dummies);
// 处理接收到的项目
} catch (err) {
// 错误处理
}
// 更新dummy
try {
dummy1.content = 'Updated Content 1';
var dummy = await client.updateDummy(null, dummy1);
// 处理更新后的项目
dummy1 = dummy!;
} catch (err) {
// 错误处理
}
// 删除dummy
try {
await client.deleteDummy(null, dummy1.id!);
} catch (err) {
// 错误处理
}
// 尝试获取已删除的dummy
try {
var dummy = await client.getDummyById(null, dummy1.id!);
print(dummy);
// 处理已删除的项目
} catch (err) {
// 错误处理
}
// 关闭服务和客户端
await client.close(null);
}
更多关于Flutter HTTP服务插件pip_services4_http的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复