使用ServiceStack作为API Facade层

Roy*_*obs 7 .net c# api servicestack

我们目前有一个针对系统中所有服务的大型C#ServiceStack API项目.我想将其拆分为较小的API,这些API都是单独运行的,以便于部署和测试.非常类似于描述真实这里由Mike哈德洛.

但是,我不想使用Nginx而是使用ServiceStack作为反向代理.这个"外部"API将处理身份验证问题,然后使用异步HTTP REST调用将任何传入请求转发到相关的内部API.

但是,我如何创建此服务转发器?假设我有一个接受/ hello调用的内部API.如果我尝试在外部API主机上创建自定义ServiceRunner,我不能只是拦截任何调用.它仍然期望存在某些路由,因此在外部API上调用/ hello失败.我是否需要在外部API主机上创建虚拟/ hello路由,以便能够使用我自己的ServiceRunner拦截它们?看看ServiceStack的其余部分,我确信有一种更清洁的方式.

奖励积分,如果它仍然可以与Swagger结合:)

Pau*_*ice 1

最初提出这个问题时,没有简单的方法可以从服务基本 url 的根目录创建通配符路由。即,如果服务托管在根目录,则没有简单的方法来创建 /{*} 通配符路由,如果服务托管在另一个点(例如 /api),则没有简单的方法来创建 /api/ {*} 通配符路线。

不过,ServiceStack 最近添加了对 Fallback 路由的支持 请参阅详细示例实现。)使用 Fallback 路由,您可以将所有无法识别的请求代理到后端,而无需在 ServiceStack 项目中枚举它们。但是,不提供 Swagger 支持。