【问题标题】:Converting WCF to WEB API : Is it a good idea to reuse the WCF services with a wrapper in WEB API [duplicate]将 WCF 转换为 WEB API:在 WEB API 中使用包装器重用 WCF 服务是个好主意吗?
【发布时间】:2018-02-19 07:50:39
【问题描述】:

我想从我的 wcf rest 服务迁移到 web api。拥有包装服务是否是个好主意,即从 API 端点调用 WCF 服务?请提出建议。

谢谢

【问题讨论】:

    标签: .net asp.net-web-api wcf-rest


    【解决方案1】:

    如果您的服务没有 WCF 特定代码并且仅包含业务逻辑,那么这将是一个好主意。您的 WEB API 控制器将只是包装器,主要处理路由、参数映射和返回 HTTP 状态代码以及适当的结果。

    编辑:

    如果您的 WCF 服务有一些 WCF 特定代码,例如身份验证,那么我建议提取独立于基础架构的代码。然后,您将能够使用从您的 WEB API 控制器中提取的新类。

    在这种大规模重构的情况下,我通常建议使用集成或端到端测试来覆盖整个组件。可以在现有代码和基础设施之上编写测试。提取代码并使用 WEB API 控制器包装后,您将能够运行相同的测试套件以确保没有重大更改。

    关于 WEB API 中的身份验证,我建议查看以下 SO:Web API Authentication best practice

    【讨论】:

    • WCF 休息服务有自己的逻辑。在 Wcf 服务中,我有一个从“ServiceAuthorizationManager”继承的类和下面的逻辑来进行身份验证。 var reqMsgProp = (HttpRequestMessageProperty)operationContext.IncomingMessageProperties["httpRequst"];字符串 authHeader = reqMsgProp.Headers[HttpRequestHeader.Authorization]; var authMessage = CheckIfAuthenticateMethod(operationContext); if (authMessage == true) { 返回 true;在 WEB API 2 架构中,我使用基于令牌的身份验证。那么如何进行身份验证部分呢?
    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多