面向服务架构~面向服务的API是统一接口还是具体业务使用具体的接口?

简介:

前言说明:这里说的"接口"并不是C#时的interface,而一般指定一个方法签名,它一般为外部提供一个GET请求,接口到请求后,进行处理,然后对调用方进行信息的返回.

回到本题中来,事件上,我们坐下来,认真去想想,还是统一接口的比较好,如果要具体业务使用具体接口,那它的具体接口肯定也是去再调用一下"那个统一的入口模块"的,注意,这里我说的是"模块",而不是"接口,类,方法等"

大体流程应该是这样:

客户端调用某个服务接口

接口系统

调用某体业务前的逻辑

    创建一个具体业务

调用某体业务后的逻辑

返回给客户端

对于一个服务端的代码要求应该是这样:

1 接口对外具有稳定性

2 对自己具体很好的扩展性(开闭原则)

3 每种具体业务都是独立的(单一职责原则)

对于上述要求,我设计如下代码:

 1     /// <summary>
 2     /// 对外统一接口模块
 3     /// </summary>
 4     public class SOA : Controller
 5     {
 6         /// <summary>
 7         /// 统一接口方法,外面可以使用GET请求
 8         /// </summary>
 9         /// <param name="blockName"></param>
10         /// <param name="param"></param>
11         /// <returns></returns>
12         public ContentResult UserAPI(string blockName, string param)
13         {
14             IAPI create = (IAPI)System.Reflection.Assembly.Load("dll").CreateInstance("namespace" + blockName);
15             if (create.Create(param))
16                 return Content("成功");
17             else
18                 return Content("失败");
19         }
20     }
21 
22     /// <summary>
23     /// 建立API指定接口规范
24     /// </summary>
25     internal interface IAPI
26     {
27         bool Create(string param);
28     }
29 
30     /// <summary>
31     /// 添加购买动态的服务
32     /// </summary>
33     internal class AddBuyingNews : IAPI
34     {
35         public bool Create(string param)
36         {
37             return true;
38         }
39     }
40 
41     /// <summary>
42     /// 添加用户等级的服务
43     /// </summary>
44     internal class AddUserLevel : IAPI
45     {
46         public bool Create(string param)
47         {
48             return true;
49         }
50     }

通过上面代码,我们可以看到,对外统一UserAPI是稳定的,当业务有变化直接修改具体业务即可,客户端平台不用修改,而AddBuyingNews和AddUserLevel这两个类型是实现各自业务的,它们之间是独立的,功能是单一的,这符合单一职责,而如果服务层希望扩展新的业务只要建立一个新类型即可,对外统一接口UserAPI不用改变,因为具体业务已经通过反射实现了松耦合,有人说反射会对性能有很大的影响,事实上,不是这样的,细心的朋友可以看一下.net自己的托管的类库,用了大量的反射,为何要用反射?我会在另一篇文章中去说明,今天主要讲的就是这些,呵呵.

本文转自博客园张占岭(仓储大叔)的博客,原文链接:面向服务架构~面向服务的API是统一接口还是具体业务使用具体的接口?,如需转载请自行联系原博主。

目录
相关文章
|
14天前
|
人工智能 自然语言处理 API
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
谷歌推出的Multimodal Live API是一个支持多模态交互、低延迟实时互动的AI接口,能够处理文本、音频和视频输入,提供自然流畅的对话体验,适用于多种应用场景。
64 3
Multimodal Live API:谷歌推出新的 AI 接口,支持多模态交互和低延迟实时互动
|
1天前
|
JSON 安全 API
淘宝商品详情API接口(item get pro接口概述)
淘宝商品详情API接口旨在帮助开发者获取淘宝商品的详细信息,包括商品标题、描述、价格、库存、销量、评价等。这些信息对于电商企业而言具有极高的价值,可用于商品信息展示、市场分析、价格比较等多种应用场景。
|
9天前
|
消息中间件 存储 安全
分布式系统架构3:服务容错
分布式系统因其复杂性,故障几乎是必然的。那么如何让系统在不可避免的故障中依然保持稳定?本文详细介绍了分布式架构中7种核心的服务容错策略,包括故障转移、快速失败、安全失败等,以及它们在实际业务场景中的应用。无论是支付场景的快速失败,还是日志采集的安全失败,每种策略都有自己的适用领域和优缺点。此外,文章还为技术面试提供了解题思路,助你在关键时刻脱颖而出。掌握这些策略,不仅能提升系统健壮性,还能让你的技术栈更上一层楼!快来深入学习,走向架构师之路吧!
44 11
|
9天前
|
前端开发 API 数据库
Next 编写接口api
Next 编写接口api
|
15天前
|
XML JSON 缓存
阿里巴巴商品详情数据接口(alibaba.item_get) 丨阿里巴巴 API 实时接口指南
阿里巴巴商品详情数据接口(alibaba.item_get)允许商家通过API获取商品的详细信息,包括标题、描述、价格、销量、评价等。主要参数为商品ID(num_iid),支持多种返回数据格式,如json、xml等,便于开发者根据需求选择。使用前需注册并获得App Key与App Secret,注意遵守使用规范。
|
14天前
|
JSON API 开发者
淘宝买家秀数据接口(taobao.item_review_show)丨淘宝 API 实时接口指南
淘宝买家秀数据接口(taobao.item_review_show)可获取买家上传的图片、视频、评论等“买家秀”内容,为潜在买家提供真实参考,帮助商家优化产品和营销策略。使用前需注册开发者账号,构建请求URL并发送GET请求,解析响应数据。调用时需遵守平台规定,保护用户隐私,确保内容真实性。
|
14天前
|
搜索推荐 数据挖掘 API
淘宝天猫商品评论数据接口丨淘宝 API 实时接口指南
淘宝天猫商品评论数据接口(Taobao.item_review)提供全面的评论信息,包括文字、图片、视频评论、评分、追评等,支持实时更新和高效筛选。用户可基于此接口进行数据分析,支持情感分析、用户画像构建等,同时确保数据使用的合规性和安全性。使用步骤包括注册开发者账号、创建应用获取 API 密钥、发送 API 请求并解析返回数据。适用于电商商家、市场分析人员和消费者。
|
23天前
|
设计模式 负载均衡 监控
探索微服务架构下的API网关设计
在微服务的大潮中,API网关如同一座桥梁,连接着服务的提供者与消费者。本文将深入探讨API网关的核心功能、设计原则及实现策略,旨在为读者揭示如何构建一个高效、可靠的API网关。通过分析API网关在微服务架构中的作用和挑战,我们将了解到,一个优秀的API网关不仅要处理服务路由、负载均衡、认证授权等基础问题,还需考虑如何提升系统的可扩展性、安全性和可维护性。文章最后将提供实用的代码示例,帮助读者更好地理解和应用API网关的设计概念。
55 8
|
24天前
|
JSON API 开发工具
淘宝实时 API 接口丨淘宝商品详情接口(Taobao.item_get)
淘宝商品详情接口(Taobao.item_get)允许开发者获取商品的详细信息,包括基本信息、描述、卖家资料、图片、属性及销售情况等。开发者需注册账号、创建应用并获取API密钥,通过构建请求获取JSON格式数据,注意遵守平台规则,合理使用接口,确保数据准确性和时效性。
|
23天前
|
算法 NoSQL Java
微服务架构下的接口限流策略与实践#### 一、
本文旨在探讨微服务架构下,面对高并发请求时如何有效实施接口限流策略,以保障系统稳定性和服务质量。不同于传统的摘要概述,本文将从实际应用场景出发,深入剖析几种主流的限流算法(如令牌桶、漏桶及固定窗口计数器等),通过对比分析它们的优缺点,并结合具体案例,展示如何在Spring Cloud Gateway中集成自定义限流方案,实现动态限流规则调整,为读者提供一套可落地的实践指南。 #### 二、
47 3

热门文章

最新文章