ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 范化调用 ## 说明 背景:有时需在程序运行时根据传入的参数动态调用不同的远程服务,此时就需要范化调用。 需注入 com.guosen.zebra.core.grpc.server.GenericService,然后根据要调用的微服务构建 JSON 格式的的参数。 ## 代码样例 ```java @ZebraReference private GenericService genericService; public String sayHello(String name) { JSONObject parameter = new JSONObject(); parameter.put("name", name); JSONObject result = genericService.$invoke( "com.guosen.zebra.sample.start.svc1.service.HelloService", ZebraConstants.DEFAULT_GROUP, ZebraConstants.DEFAULT_VERSION, "sayHello", parameter); } ``` 如上图,通过 @ZebraReference 注入 GenericService,然后使用其 $invoke 接口。 1. 请求参数说明如下: | 请求参数 | 说明 | | :--- | :--- | | serviceName(第一个参数) | 要调用的微服务全称 | | group(第二个参数) | 要调用的微服务集群,一般使用默认值 ZebraConstants.DEFAULT\_GROUP | | version(第三个参数) | 要调用的微服务版本,一般使用默认值 ZebraConstants.DEFAULT\_VERSION | | method(第四个参数) | 微服务接口的方法名 | | arg(第五个参数) | 要调用的方法的 JSON 格式的请求参数 | 2. 返回参数 函数的返回值为 JSON 格式的返回值,key 请参考接口的 PB 定义。