当前位置: 首页 > article >正文

使用SpringBoot开发一个API网关

已经有很多开源的网关了,而且大公司一般都有自己的网关系统,但是有些场景也离不开我们自己需求定制,可以使用SpringCloud GateWay来满足我们业务的需求,即使需要在网关层实现一些具体的业务逻辑,我们也可以在开源的基础上进行二次开发。但如果我们只需要使用API网关核心的能力,同时需要在API层实现一些业务逻辑,我们基于SpringBoot自己来实现API网关。我们可以怎样来实现呢?通过结合实际业务需求以及对开源API网关的的学习。

其实很简单,我们对着代码一步一步来:

POM文件引入jar包

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

启动类

@SpringBootApplication(scanBasePackages = {"com.xxx.xxx"})
public class ThorGatewayApplication {

	public static void main(String[] args) {
		SpringApplication.run(ThorGatewayApplication.class, args);
	}

}

路由配置

这里是最重要的,后续的路由转发等都是根据这个文件

server:
  port: 11618

spring:
  application:
    name: quality-thor-gateway
  cloud:
    gateway:
      globalcors:
        cors-configurations:
          '[/**]':
            allowedOrigins: "*"
            allowedHeaders: "*"
            allowedMethods: "*"
      default-filters:
        - DedupeResponseHeader=Vary Access-Control-Allow-Origin Access-Control-Allow-Credentials, RETAIN_FIRST
      discovery:
        locator:
          enabled: true
			routes:
      - id: projectID1
        predicates:
        - Path=/api/thor/core/web/**
        uri: projectURL1
      - id: projectID2
        predicates:
        - Path=/api/thor/perf/web/**
        uri:  projectURL2

logging:
  level:
    org.springframework.cloud.gateway: debug

http://www.kler.cn/a/137249.html

相关文章:

  • 理解 EXPLAIN
  • 梯度(Gradient)和 雅各比矩阵(Jacobian Matrix)的区别和联系:中英双语
  • Redis的主从集群以及哨兵机制学习总结
  • 并发控制之CyclicBarrier
  • 远程连接:构建智能家居舒适生活
  • 【开源免费】基于SpringBoot+Vue.JS网上订餐系统(JAVA毕业设计)
  • 设计模式(二)-创建者模式(4)-原型模式
  • 纽扣电池/含纽扣电池产品上架亚马逊各国法规标准要求16 CFR 第 1700.15/20 ANSI C18.3M(瑞西法案认证)
  • vue-awesome-swiper 引入css样式文件报错等问题
  • 前端语言报错
  • 黑马React18: 基础Part II
  • 部署Kubernetes Dashboard
  • 创建域名邮箱邮件地址的方法与步骤
  • vue动态获取目录结构进行配置静态路由
  • Android项目更新依赖和打包步骤和问题汇总
  • 本地部署 EmotiVoice易魔声 多音色提示控制TTS
  • zookeeper应用之分布式队列
  • 百度地图,地市区域描边
  • HTML+CSS+ElementUI搭建个人博客页面(纯前端)
  • 基于STM32CubeMX和keil采用RTC时钟周期唤醒和闹钟实现LED与BEEP周期开关
  • LeetCode977.有序数组的平方(双指针法、暴力法、列表推导式)
  • Linux CentOS 8(DNS的配置与管理)
  • 【发明专利】天洑软件再度收获六项国家发明专利授权
  • Hotspot启动原理(一)
  • 图解算法数据结构-LeetBook-栈和队列04_望远镜中最高的海拔_滑动窗口
  • uview-plus中二级菜单左右联动更改为uni-app+vue3+vite写法