编程语言
ASP.NET Core 搭载 Envoy 实现 gRPC 服务代理
在构建以 gRPC 为核心的微服务架构中,作者介绍了通过 Envoy 的 gRPC-JSON Transcoder 功能实现将 gRPC 服务代理成 JSON API 的方案。通过配置 Envoy 过滤器实现 JSON 和 Protobuf 的转换,需要生成服务描述文件,然后配置 Envoy,即可像调用 JSON API 一样调用 gRPC。这种方案已在作者所在公司全面采用,通过 Docker-Compose 编排多个微服务,并通过 Envoy 统一入口。最终实现了 gRPC 与 Web 的无缝对接,为消费 gRPC 服务提供便利。
编程语言
WebApiClient 中动态路由的实现与使用
在这篇博客中,讨论了.NET平台下声明式RESTful客户端WebApiClient的动态路由实现与使用。介绍了WebApiClient的简单调用流程以及遇到的问题,提出了三种解决思路:使用[Uri]参数、使用{foobar}片段参数以及使用服务发现。作者展示了通过服务发现获取可用地址来动态调用服务的示例,并提到了WebApiClient的作者提供的服务发现扩展。
编程语言
通过动态 Controller 实现从 WCF 到 Web API 的迁移
这篇文章介绍了如何通过 Castle 的动态代理来实现将 WCF 接口迁移到 Web API 上的过程。通过组合类和接口,借助 Castle 的 Dynamic Proxy 实现动态生成 Controller,替换默认组件以实现 WCF 接口通过 Web API 访问。文章还涵盖了 ASP.NET MVC 的原理、自定义组件的实现、容器注册替换、HTTP 动词支持和接口返回值优化等内容。最后提到了在 ASP.NET Core 中的 POCOController 特性,使得将任意类作为 Controller 更加简单。文章内容详实,为实现 WCF 到 Web API 的迁移提供了指导和思路。
编程语言
声明式 RESTful 客户端 WebApiClient 在项目中的应用
项目采用敏捷开发后出现“联调”任务,由于前后端分离导致团队分成前后端组,前端负责展示数据,后端提供服务接口,但存在沟通困难。讨论三方面原因:设计不当、进度不一、沟通不畅。介绍前后端分离思想,客户端产品采用Native+Web技术架构,通过JSBridge实现Native和Web通信。详述WebApiClient库在.NET平台下类似Retrofit的作用,通过声明式方式定义接口调用。讨论上传下载接口、过滤器与OAuth2,以及可配置与动态化。强调前后端职责分离重要性,提出通过代理类调用后端API的想法。最后介绍WebApiClient的应用,提倡契约式接口声明,以更快速应对后端变化。1