当前位置: 首页 > 知识库问答 >
问题:

Quarkus:自定义rest扩展部署

东方俊材
2023-03-14

我是Quarkus新手,我编写了一个提供rest API的扩展,我们称之为/myapi

@Path("/myapi")
public class MyApi {

  @Inject
  private ServiceInterface someService; //provided by the app that uses the extension

  @POST
  public MyResponse processMessage(MyMessage message) {
    return someService.processMessage(message);
  }

}

其思想是,扩展将提供应用程序所需的rest资源,应用程序提供业务逻辑。

因此,我创建了一个Kwkus项目,该项目使用该扩展并提供了一个bean,该bean使用业务逻辑实现ServiceInterface

但是,当我启动应用程序时,不会创建endpoint/myapi,当我调用它时,它会返回404

问题是:如何使扩展中定义的rest资源对使用它的应用程序可见?

共有1个答案

雷骁
2023-03-14

我终于想出了这个解决办法:

 @BuildStep
  void addDominoApi(BuildProducer<AdditionalBeanBuildItem> additionalBeans) {
    additionalBeans.produce(AdditionalBeanBuildItem.unremovableOf(MyApi.class));
  }

MyApi添加到附加bean

 类似资料:
  • 目前 Mars 支持自定义 xlog 的加密部分和长短连协议加解包部分。需要强调的是想要自定义这些扩展,需要在本地编译 Mars 才可以,编译方法见 Mars Android 接入指南 和 Mars iOS/OS X 接入指南 中的编译部分。切记,在自定义实现时,可以增加函数,但是不能删除头文件中已有的函数,也不能修改头文件中的函数原型。 自定义 xlog 加密 xlog 的具体实现可以参考微信终

  • 当我们在开发某些东西时,经常会需要我们自己的 error 类来反映在我们的任务中可能出错的特定任务。对于网络操作中的 error,我们需要 HttpError,对于数据库操作中的 error,我们需要 DbError,对于搜索操作中的 error,我们需要 NotFoundError,等等。 我们自定义的 error 应该支持基本的 error 的属性,例如 message,name,并且最好还有

  • 通过Envoy架构很容易扩展网络过滤器和HTTP过滤器。 有关如何添加网络过滤器和构建库并建立依赖关系的示例,请参见envoy-filter-example。 返回

  • 用户自定义扩展是用户自己创建的 JavaScript 文件,对 Selenium IDE 现有的功能进行定制以及功能扩展。通常这种定制和扩展是以自定义命令的形式来体现的,当然也不仅限于命令。 这里可以找到很多有用的扩展。 注意:这部分信息已经过时,我们将很快修改。 也许最受欢迎的 Selenium IDE 扩展就是流程控制,流程控制扩展将提供 while 循环和条件判断。这个扩展是 goto_se

  • uView已通过大量的实践中,收集了用户最有可能需要用到的图标,见Icon 图标,但我们也相信,它肯定无法覆盖所有的场景和需求。 用户也可以使用标签的方式,自行引入字体图标,为何要通过扩展的方式集成呢? 这是因为uView有统一的字体图标组件,使用方便,配置灵活,且风格统一。 说明 以下说明和演示,均针对阿里字体图标库,其他字体库源同理 总的来说,我们要实现的效果如下: @font-face {

  • 注意:TPR已经停止维护,kubernetes 1.7及以上版本请使用CRD。 自定义资源是对Kubernetes API的扩展,kubernetes中的每个资源都是一个API对象的集合,例如我们在YAML文件里定义的那些spec都是对kubernetes中的资源对象的定义,所有的自定义资源可以跟kubernetes中内建的资源一样使用kubectl操作。 自定义资源 Kubernetes1.6版