Markdowm 目录跳转 (Markdown TOC、markdown-index、VSCode)

<!-- TOC --> 
[1. 协议转换(http->sofa)](#1-协议转换http-sofa)

[2. 鉴权](#2-鉴权)

[3. 熔断限流](#3-熔断限流)

[4. 安全校验](#4-安全校验)

[5. 日志](#5-日志)

[6. 其他](#6-其他)

<!-- /TOC -->
# 1. 协议转换(http->sofa)
## 1.1. 在本地发布sofa 服务端.配置如下
```
ServerConfig serverConfig = new ServerConfig()
    .setProtocol("bolt") // 设置一个协议,默认bolt
    .setPort(12200) // 设置一个端口,默认12200
    .setDaemon(false); // 非守护线程

ProviderConfig<HelloService> providerConfig = new ProviderConfig<HelloService>()
        .setInterfaceId(HelloService.class.getName()) // 指定接口
        .setRef(new HelloServiceImpl()) // 指定实现
        .setServer(serverConfig); // 指定服务端

providerConfig.export(); // 发布服务
System.out.println("----provider service success----");
```
## 1.2. 在该工程下,配置拦截path
```
spring:
 cloud:
    # Gateway routes config
    gateway:
      routes:
        - id: syaHello
          # 拦截后重定向的服务器位置
          uri: http://127.0.0.1:8080
          # 拦截的路径
          predicates:
            - Path=/sayHello
          filters:
            # 第一个参数是开启过滤器,第二个是rpc对应的接口,
            # 第三个对应的是接口方法,第四个是可选的,指定 入参参数名:入参参数类型
            - SofaAdapt=true,com.example.sofarpc.noboot.HelloService,sayHello,{"data":"java.lang.String"}
        - id: getDepts
          uri: http://127.0.0.1:8080
          predicates:
            - Path=/getDepts
          filters:
            - SofaAdapt=true,com.example.sofarpc.noboot.HelloService,getDepts
```
## 1.3. 泛化调用配置
```
ConsumerConfig<GenericService> consumerConfig = new ConsumerConfig<GenericService>()
                .setInterfaceId(interfaceClass)
                .setProtocol("bolt") // 指定协议
                .setDirectUrl("bolt://127.0.0.1:12200") // 指定直连地址
                .setGeneric(true); // 设置泛化调用
        GenericService genericService = consumerConfig.refer();
```
## 1.4. 启动工程,发起POST请求

```
http://127.0.0.1:8085/getDepts
入参:
{
  "params": [
    {
     
    }
  ]
}
返回:
[{"type":"com.example.sofarpc.noboot.vo.Dept","fields":{"code":"code1","id":"1","name":"name2"}},
{"type":"com.example.sofarpc.noboot.vo.Dept","fields":{"code":"code2","id":"2","name":"name2"}},
{"type":"com.example.sofarpc.noboot.vo.Dept","fields":{"code":"code3","id":"3","name":"name3"}}]
http://127.0.0.1:8085/sayHello
入参:
{
  "params": [
    {
     "data" : " I am OK"
    }
  ]
}
返回:
"hello boy, I am provider service. you say content is : I am OK !"
```
注意:入参为固定格式,“data”与yml配置保持一致。
# 2. 鉴权

# 3. 熔断限流
# 4. 安全校验
# 5. 日志
# 6. 其他

如上:在gitlab上可以实现,点击目录跳转。

在VScode中,Markdown TOC可以自动生成目录。但是有些auto的标识,我去掉了这些标识、去掉二级和三级目录,增加了回车。markdown-index可以自动生成标题的序号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值