sitelink1 https://docs.kanboard.org/en/latest/api/examples.html 
sitelink2  
sitelink3  

Kanboard 는 외부시스템에서 Kanboard의 데이터를 컨트롤 가능한 API를 제공하고 있다 -> https://docs.kanboard.org/en/latest/api/examples.html

 

API에서 제공하는 example 중 java 버전은 Spring 을 사용하고 있는데

샘플 돌리다보니 괜시리 복잡스러워서 Spring 은 걷어내고 pure java 로 샘플을 다시 작성하였다

첨부파일의 WAR 를 이클립스에서 import project 하면 샘플을 살펴볼 수 있다

 

 

<TestKanboardRequest.java>

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.Base64;

 

import org.json.simple.JSONObject;

import org.json.simple.parser.JSONParser;

import org.json.simple.parser.ParseException;

 

import util.JSONUtil;

 

public class TestKanboardRequest {

 

    

    public static void main(String args[]) throws IOException, ParseException {

        URL url = new URL("http://[마이도메인]/kanboard/jsonrpc.php");

        

        String requestJson = "{\"jsonrpc\": \"2.0\", \"method\": \"getAllProjects\", \"id\": 1}";

//        String requestJson = "{\"jsonrpc\":\"2.0\",\"method\":\"getAllTasks\",\"id\":1,\"params\":{\"project_id\":1,\"status_id\":1}}";

        

        String user = "jsonrpc";

        String apiToken = "94308b5c13bf2fb5f78139cf12996b96d92fbab62af2f8d5d4f01e3fd013"; 

        

        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setDoInput(true);

        

        byte[] xApiAuthTokenBytes = String.join(":", user, apiToken).getBytes("utf-8");

        String xApiAuthToken = Base64.getEncoder().encodeToString(xApiAuthTokenBytes);

        connection.setRequestProperty("X-API-Auth", xApiAuthToken);

        connection.setRequestProperty("Content-type", "application/json;charset=UTF-8");

        

        connection.setRequestMethod("POST");

        connection.setDoOutput(true);

        OutputStream out_stream = connection.getOutputStream();

        out_stream.write( requestJson.getBytes("UTF-8") );

        out_stream.flush();

        out_stream.close();

        

        BufferedReader brin = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));

        String resStr = null;

        StringBuffer resStrBuff = new StringBuffer();

        try {

            while ((resStr = brin.readLine()) != null) {

                resStrBuff.append(resStr);

            }

        } finally {

            if (brin != null) {

                brin.close();

                brin = null;

            }

            connection = null;

            url = null;

            resStr = null;

        }

                

        JSONParser parser = new JSONParser();

        Object obj = parser.parse(resStrBuff.toString());

        JSONObject jsonObject =(JSONObject) obj;

        System.out.println(JSONUtil.JsonEnterConvert(jsonObject.toJSONString()));

    }    

}