我真的很想将 servicestack 用于我需要编写的服务,但我遇到了一个心理障碍,我的思想围绕着它是如何工作的,更准确地说,我如何让它为我的意图和目的工作。我没有强大的asp背景,主要是后端,所以也许这就是心理障碍的原因。
我有一个遗留平台,我通过本机 c++ api 连接到该平台。我已将 cli 中的本机 api 扭曲为 .net 类库,这相当于将 Todo repo 注入样本中。
来回移动的数据在类库中作为值结构公开。例如帐户将被定义如下:
struct Account{
int id;
string name;
string password;
...
}
订单将是这样的:
struct Order{
int orderId;
int account;
string comment;
...
}
该库为与上述类似定义的各种不同对象公开了许多功能和操作。我想了解的是:
1)如何在容器中注册 api?更准确地说,我不明白 Register 方法如何知道它应该得到什么类型。在 todo 示例中,所有内容都在同一个程序集中定义,因此很难看到后端是如何注入的。
2)有没有办法在框架中管理后端的生命周期。我可以使它成为所有连接的单例吗?
3)我是否必须将我的结构包装在将字段映射到请求的类中。不清楚请求对象是如何定义的,似乎请求的内容应该是可以转换为操作的字段名/类型的 url 的字段。如果有一种方法不必包装,那么我该如何限制在 api 中公开哪些字段,哪些不公开。
4)我是否必须为每种数据类型创建一个服务,所以在上面的结构中,我必须为订单实现一项服务,为账户实现一项服务,有没有办法将它们组合成一个。我喜欢 ss 可以转换为通过 mq 进行通话,这会使组合服务在未来难以通过 mq 进行操作,这种方法有什么缺点。
5)最后,我想公开 api 中的操作,afaik 会违反其余合同。类似于:存档帐户,然后......这将是一个返回成功/失败状态的操作,没有更新/删除等。本质上,通过 http 请求驱动一些功能。这在 ss 中是否可能,如果可以,以这种方式使用它是否会对框架的操作产生任何破坏性后果...