Solon v4.0.5

nami - 头信息的几种设置方式

</> markdown
2026年8月6日 下午10:24:30

1、声明时添加

public interface GitHub {
    @NamiMapping(headers={"a=1", "b=2"})
    List<Contributor> contributors(String owner, String repo);
}

2、自己过滤时添加

或者全局过滤时添加,都是基于 Filter 接口

public interface GitHub extends Filter{
    @NamiMapping(headers={"a=1", "b=2"})
    List<Contributor> contributors(String owner, String repo);
    
    @Override
    default Result doFilter(Invocation inv) throws Throwable {
        inv.headers.put(CloudClient.trace().HEADER_TRACE_ID_NAME(), CloudClient.trace().getTraceId());
        return inv.invoke();
    }
}

3、运行时添加

  • NamiAttachment 旧方式(for 3.x)
@Controller
public class Demo {
    @NamiClient(url="https://api.github.com")
    GitHub gitHub;

    @Mapping
    public Object test(){
        NamiAttachment.put("a", "1");
        return gitHub.contributors("OpenSolon", "solon");
    }
}
  • NamiAttach 新方式(for 4.x)
@Controller
public class Demo {
    @NamiClient(url="https://api.github.com")
    GitHub gitHub;

    @Mapping
    public Object test(){
        return NamiAttach.apply((attach)->{
            attach.put("a", "1");
            return gitHub.contributors("OpenSolon", "solon");
        });
    }
}