Oracle apex 如何从Oracle APEX页面调用Jira Rest API

Oracle apex 如何从Oracle APEX页面调用Jira Rest API,oracle-apex,jira-rest-api,Oracle Apex,Jira Rest Api,要求- 对于创建的任何Jira问题,将在APEX页面上显示以下字段 发行编号/发行Id 总结 描述 地位 受让人 例如,user01和user02都可以访问Oracle APEX和Jira。user01在Jira中创建了3期,user02创建了5期。现在,当user01登录到Oracle APEX时,应该看到3个问题;当user02登录到Oracle APEX时,应该看到APEX页面上的5个问题 我是APEX Rest服务调用的新手,请大家提供一些示例APEX代码,以便根据上述要求使用用户名/

要求-

对于创建的任何
Jira
问题,将在
APEX
页面上显示以下字段

  • 发行编号/发行Id
  • 总结
  • 描述
  • 地位
  • 受让人
  • 例如,user01和user02都可以访问Oracle APEX和Jira。user01在Jira中创建了3期,user02创建了5期。现在,当user01登录到Oracle APEX时,应该看到3个问题;当user02登录到Oracle APEX时,应该看到APEX页面上的5个问题

    我是APEX Rest服务调用的新手,请大家提供一些示例APEX代码,以便根据上述要求使用用户名/密码调用Jira Rest API


    谢谢大家。

    我以前也做过类似的事情。在我的例子中,目标是从Jira获取项目PRJ001(Jira项目密钥)的所有问题,并定期将它们存储在本地数据库表(J_问题)中,因此我创建了一个作业,该作业不时执行以下过程:

    create or replace PROCEDURE           "JIRA_SYNC_ISSUES" as 
    
    var_response CLOB;
    var_counter number := 0;
    var_total number := 1;
    var_prj_key varchar2(10);
    
    begin
    
        var_prj_key := 'PRJ001';
        var_total := 1;
        var_counter := 0;
        
        while var_total > var_counter
        loop
            apex_session.create_session (p_app_id => 107, p_page_id  => 1, p_username => 'USERNAME01');
    
            var_response:= apex_web_service.make_rest_request(
            p_url => 'https://yourcompany.atlassian.net/rest/api/2/search?jql=project="'|| var_prj_key ||'"&maxResults=100&startAt=' || var_counter || '',
            p_http_method => 'GET',
            p_credential_static_id => 'oud_rest'
            );
    
    
            SELECT JSON_VALUE(var_response, '$.total' RETURNING NUMBER) into var_total
              FROM DUAL;
    
            for i in (SELECT *
            FROM 
            JSON_TABLE(var_response, '$.issues[*]'
            COLUMNS (
                 key VARCHAR2(100) PATH '$.key',
                 prj_key VARCHAR2(100) PATH '$.fields.project.key',
                 status VARCHAR2(100) PATH '$.fields.status.name',
                 updated VARCHAR2(100) PATH '$.fields.updated',
                 assignee VARCHAR2(100) PATH '$.fields.assignee.name',
                 time_spent NUMBER PATH '$.fields.timespent'
                 )))
            loop
                begin
                   insert into j_issues (jis_key, jis_jpr_key, jis_status, jis_updated, jis_assignee, jis_time_spent) 
                      values (i.key,
                              i.prj_key, 
                              i.status, 
                              to_timestamp(substr(i.updated,1,10)||' '||substr(i.updated,12,8),'YYYY-MM-DD HH24:MI:SS'), 
                              i.assignee, 
                              i.time_spent);
                exception
                   when dup_val_on_index then
                      update j_issues
                      set    jis_jpr_key = i.prj_key,
                             jis_status = i.status,
                             jis_updated = to_timestamp(substr(i.updated,1,10)||' '||substr(i.updated,12,8),'YYYY-MM-DD HH24:MI:SS'),
                             jis_assignee = i.assignee,
                             jis_time_spent = i.time_spent
                      where  jis_key = i.key;
                end;   
                var_counter := var_counter + 1;
            end loop;
    
        end loop;
    
    end jira_sync_issues;
    
    在第一部分中,它验证并调用API。在第二种情况下,它获取var_响应并将其插入到所需的表中。 在第一部分中,我读了以下内容: 第二项:

    注意var_计数器和var_总变量。它们用于迭代Jira响应,因为在每个响应中检索的项目是有限的。因此,如果您期望的值超过该限制,则应该进行更多调用以检索它们

    如果问题的数量很大,那么像这样进行定时同步,而不是让用户等待整个结果,会有很多好处。数据进入数据库后,您可以像往常一样查询它


    如果有帮助,请告诉我;)

    我没有使用JIRA的REST API的经验,但您会希望使用
    APEX\u WEB\u服务。发出\u REST\u请求
    来拨打电话。使用Postman或其他API测试工具测试API,然后尝试使用该函数调用模拟该请求。非常感谢您的帮助。我会按照你的步骤让你知道。祝您今天过得愉快。