存储和访问JIRA插件数据的最佳方式是什么?

存储和访问JIRA插件数据的最佳方式是什么?,jira,jira-plugin,Jira,Jira Plugin,我一直在探索Jira插件开发 我有一个场景,需要在后端存储特定于用户的数据。将其视为一组输入字段(页面>强> >,从用户请求一些信息,然后在用户保存时显示。我不想在标记中包含输入字段。我想通过AJS调用API(REST模块)来处理事情。请建议最好的方法 即使在阅读了各种文档和示例之后,我仍然找不到一种可靠的方法来实现这一点,而且仍然存在一些混乱 对于存储数据,我可以找到两种方法。我可以使用插件设置工厂或活动对象。显然,这两项服务不能在REST模块中使用(如果我错了,请纠正我。这将解决我的问题。)

我一直在探索Jira插件开发

我有一个场景,需要在后端存储特定于用户的数据。将其视为一组输入字段(<右视图面板>页面>强> >,从用户请求一些信息,然后在用户保存时显示。我不想在标记中包含输入字段。我想通过AJS调用API(REST模块)来处理事情。请建议最好的方法

即使在阅读了各种文档和示例之后,我仍然找不到一种可靠的方法来实现这一点,而且仍然存在一些混乱

对于存储数据,我可以找到两种方法。我可以使用插件设置工厂活动对象。显然,这两项服务不能在REST模块中使用(如果我错了,请纠正我。这将解决我的问题。

我想通过ActiveObjects方法。但我不确定我是否可以在JIRA插件中使用它,因为它是为通用汇流应用程序设计的

假设在JIRA插件中是否可以使用ActiveObjects。我不知道如何使用AJS调用servlet的POST。如果有的话,请建议一种方法

如果ActiveObjects不能在JIRA插件中使用,我将不得不在servlet中使用PluginSettingsFactory,因为显然我不能在REST模块中使用PluginSettingsFactory。同样,我必须通过Servlet方法,我不知道如何使用AJS调用Servlet的POST

我知道这篇文章中有太多的问题


如果有任何方法,请提出建议?

您可以使用
pluginsetingsfactory
,至少我可以使用它

创建用户设置类

@ExportAsService
@Component
public class UserSettings {


   private final PluginSettingsFactory pluginSettingsFactory;
   private String KEY="mykey"

   @Autowired
   public UserSettings(
        @ComponentImport PluginSettingsFactory pluginSettingsFactory,
   ) {

      this.pluginSettingsFactory = pluginSettingsFactory;

   }


   public void set(String namespace, string key, string value){
      PluginSettings pluginSettings = pluginSettingsFactory.createSettingsForKey(KEY + namespace);
      pluginSettings.put(key, value);
   }


   public String get(String namespace, name key){
      PluginSettings pluginSettings = pluginSettingsFactory.createSettingsForKey(KEY + namespace);
      pluginSettings.get(key);
   } 

}   
现在在您的REST模块中,您可以使用

Component
@Path("/path")
public class RestModule {

   private final UserSettings UserSettings;

   @Autowired
   public RestModule(
           UserSettings UserSettings
   ){
       this.userSettings = userSettings;
   }

   @POST
   @Path("{someParam}")
   @Produces({MediaType.APPLICATION_JSON})
   @Consumes({MediaType.APPLICATION_JSON})
   public Response getResponse(@PathParam("someParam") String someParam, RequestDataModel data)        
   {
      try {
            // Storing a value of data.someKey with key "someKey" in namespace someParam
            userSettings.set(someParam,"someKey", data.someKey);
      }
   }

}
免责声明:我没有专门编译和运行这段代码,它是我的代码的简化版本,使用了这样的概念