现在的软件开发模式和传统的有很多差别,传统的开发模式耦合度较高,随着技术的发展越来越多的开发模式被应用,比如微服务架构模式。其实很多开发语言都有自己的微服务解决方案,如Java系的Spring Boot、Spring Cloud等。但在实际项目开发中,即使是在微服务开发模式下,依旧有很多人喜欢单独抽离出一个api模块,这是为什么呢?

什么是微服务?

其实“微服务”并不是一种新的技术,而是一种新兴的架构模式。简单的说就是将一个服务拆成多个颗粒度小、易复用的子服务,这样做的好处就是:

  • 应用/服务解耦,避免了单个业务过于复杂;
  • 每个微服务独立开发和部署,扩展性更强,可以实现服务高可用;
  • 服务组件化,易复用。
  • Java开发

后端微服务开发时为什么还要单独抽离API模块?

既然我们是以微服务模式来开发项目的,为什么很多开发者还习惯性的建立一个API模块出来呢?

其实开发微服务时,可以采用单模块模式来开发,而很多人采用多模块来开发是因为遵循了“高内聚、低耦合”的设计模式,这样做的优点就是:

1、边界清晰、易于管理

一个中型项目在开发时会有很多业务和模块,它们分散在各个包中,这样就很混乱。如果有些API是希望对外公开的,有些API只允许内部访问或有限访问,那就有必要将公开的API单独抽离到一个单独的API模块中,这样管理起来更方便。
 

2、各模块间更容易聚合

把项目拆成多模块来开发,我们可以通过maven等来解决依懒关系,可以很方便的实现模块间的聚合,各个模块也可以单独使用。

比如将工程拆分为这几个模块:公共模块、对外API模块、管理和监控模块、业务模块等。

Java开发