Flutter消息模板服务插件pip_services_msgtemplates的使用
Flutter消息模板服务插件pip_services_msgtemplates的使用

MessageTemplates微服务
这是来自Pip.Services库的消息模板微服务。它向用户展示各种主题上的灵感消息模板。
该微服务目前支持以下部署选项:
- 部署平台:独立进程、Seneca
- 外部API:HTTP/REST、Seneca
- 持久化:平面文件、MongoDB
该微服务与其他微服务没有依赖关系。
快速链接
- 下载链接
- 开发指南
- 配置指南
- 部署指南
- 客户端SDK
- 通信协议
- HTTP版本1
合同
微服务的逻辑合同如下所示。对于物理实现(HTTP/REST),请参阅特定协议的文档。
class MessageTemplateV1 implements IStringIdentifiable {
String id;
String name;
String from;
MultiString subject;
MultiString text;
MultiString html;
String status;
}
class MessageTemplateStatusV1 {
static final New = 'new';
static final Writing = 'writing';
static final Translating = 'translating';
static final Verifying = 'verifying';
static final Completed = 'completed';
}
abstract class IMessageTemplatesV1 {
Future<DataPage<TemplateV1>> getTemplates(
String? correlationId, FilterParams filter, PagingParams paging);
Future<TemplateV1> getTemplateById(String? correlationId, String id);
Future<TemplateV1> getTemplateByIdOrName(String? correlationId, String idOrName);
Future<TemplateV1> createTemplate(String? correlationId, TemplateV1 msgtemplate);
Future<TemplateV1> updateTemplate(String? correlationId, TemplateV1 msgtemplate);
Future<TemplateV1> deleteTemplateById(String? correlationId, String msgtemplateId);
}
下载
目前获取微服务的唯一方法是从GitHub仓库直接检出。
git clone git@github.com:pip-services-content/pip-services-msgtemplates-dart.git
Pip.Service团队正在努力实现打包,并使稳定版本可供下载为zip存档。
运行
在微服务文件夹的根目录下添加config.yaml
文件,并设置配置参数。
微服务配置示例:
---
# 容器描述符
- descriptor: "pip-services:context-info:default:default:1.0"
name: "pip-services-msgtemplates"
description: "Message Templates microservice for pip-services"
# 控制台日志记录
- descriptor: "pip-services:logger:console:default:1.0"
level: "trace"
# 性能计数器,将值发布到日志
- descriptor: "pip-services:counters:log:default:1.0"
level: "trace"
{{#MEMORY_ENABLED}}
# 内存持久化。仅用于测试!
- descriptor: "pip-services-msgtemplates:persistence:memory:default:1.0"
{{/MEMORY_ENABLED}}
{{#FILE_ENABLED}}
# 文件持久化。用于测试或简单的独立部署
- descriptor: "pip-services-msgtemplates:persistence:file:default:1.0"
path: {{FILE_PATH}}{{^FILE_PATH}}"./data/msgtemplates.json"{{/FILE_PATH}}
{{/FILE_ENABLED}}
{{#MONGO_ENABLED}}
# MongoDB持久化
- descriptor: "pip-services-msgtemplates:persistence:mongodb:default:1.0"
collection: {{MONGO_COLLECTION}}{{^MONGO_COLLECTION}}msgtemplates{{/MONGO_COLLECTION}}
connection:
uri: {{{MONGO_SERVICE_URI}}}
host: {{{MONGO_SERVICE_HOST}}}{{^MONGO_SERVICE_HOST}}localhost{{/MONGO_SERVICE_HOST}}
port: {{MONGO_SERVICE_PORT}}{{^MONGO_SERVICE_PORT}}27017{{/MONGO_SERVICE_PORT}}
database: {{MONGO_DB}}{{#^MONGO_DB}}app{{/^MONGO_DB}}
credential:
username: {{MONGO_USER}}
password: {{MONGO_PASS}}
{{/MONGO_ENABLED}}
{{^MEMORY_ENABLED}}{{^FILE_ENABLED}}{{^MONGO_ENABLED}}
# 默认内存持久化
- descriptor: "pip-services-msgtemplates:persistence:memory:default:1.0"
{{/MONGO_ENABLED}}{{/FILE_ENABLED}}{{/MEMORY_ENABLED}}
# 默认控制器
- descriptor: "pip-services-msgtemplates:controller:default:default:1.0"
# 公共HTTP端点
- descriptor: "pip-services:endpoint:http:default:1.0"
connection:
protocol: "http"
host: "0.0.0.0"
port: 8080
# HTTP端点版本1.0
- descriptor: "pip-services-msgtemplates:service:http:default:1.0"
# 心跳服务
- descriptor: "pip-services:heartbeat-service:http:default:1.0"
# 状态服务
- descriptor: "pip-services:status-service:http:default:1.0"
有关微服务配置的更多信息,请参见配置指南。
使用以下命令启动微服务:
dart ./bin/run.dart
使用
与微服务最简单的工作方式是使用客户端SDK。可用的客户端SDK列表详见快速链接部分。
如果你使用的是Dart,请获取所需的库引用:
- Pip.Services3.Commons: https://github.com/pip-services3-dart/pip-services3-commons-dart
- Pip.Services3.Rpc: https://github.com/pip-services3-dart/pip-services3-rpc-dart
导入所需的包:
import 'package:pip_services3_commons/pip_services3_commons.dart';
import 'package:pip_services3_rpc/pip_services3_rpc.dart';
import 'package:pip_services_msgtemplates/pip_services_msgtemplates.dart';
定义与微服务外部API匹配的客户端配置参数:
// 客户端配置
var httpConfig = ConfigParams.fromTuples(
"connection.protocol", "http",
"connection.host", "localhost",
"connection.port", 8080
);
实例化客户端并打开连接到微服务:
// 创建客户端实例
var client = TemplatesHttpClientV1(config);
// 配置客户端
client.configure(httpConfig);
// 连接到微服务
try{
await client.open(null);
}catch(e) {
// 错误处理...
}
// 与微服务交互
// ...
现在客户端已准备好执行操作:
// 创建新的消息模板
final TEMPLATE = MessageTemplateV1(
id: '1',
name: 'template1',
from: null,
subject: MultiString({'en': 'Text 1'}),
text: MultiString({'en': 'Text 1'}),
html: MultiString({'en': 'Text 1'}),
status: MessageTemplateStatusV1.Completed);
// 创建消息模板
try {
var msgtemplate = await client.createTemplate('123', TEMPLATE);
// 对返回的消息模板进行操作...
} catch(err) {
// 错误处理...
}
获取消息模板:
try {
var msgtemplate = await client.getTemplateByIdOrName(
null,
'template1');
// 对消息模板进行操作...
} catch(err) { // 错误处理}
更多关于Flutter消息模板服务插件pip_services_msgtemplates的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复