kintone Java Client是一個庫,匯總了在Java程式中使用kintone REST API所需的處理過程。
它涵蓋了kintone中提供的大部分REST API
kintone REST API
使用kintone Java Client,只需調用提供的方法即可執行kintone REST API,從而減少需要編寫的代碼量。
還可以使用 IDE(如 IntelliJ)來完成代碼。
本文將對kintone Java Client的安裝方法和基本使用方法進行說明。
kintone Java Client提供的方法使用方法,請參閱以下頁面。
樣本集
https://github.com/kintone/kintone-java-client
MIT 授權
不支援Android。
https://kintone.github.io/kintone-java-client/javadoc/
build.gradle
將以下內容新增到 .
在第2行: 指定以下版本使用的kintone Java Client版本。
1
2
3
|
dependencies {
implementation 'com.kintone:kintone-java-client:0.9.0'
}
|
pom.xml
將以下內容新增到 .
在第4行中,version指定要使用的kintone Java Client版本。
1
2
3
4
5
|
<dependency>
<groupId>com.kintone</groupId>
<artifactId>kintone-java-client</artifactId>
<version>0.9.0</version>
</dependency>
|
這是獲取kintone記錄並將獲取到的內容輸出到控制台的範例。
Step1:準備kintone應用
-
添加單行文字方塊,創建kintone應用。
-
在您建立的應用中生成 API 權杖。
有關詳細說明,請參閱以下頁面。
生成 API 令牌
-
在您創建的應用的 URL 中,找到應用 ID。
網址https://sample.cybozu.com/k/123
是應用程式ID。
在上述情況下,應用ID為「123」。
-
添加一條記錄作為測試數據。
-
在您創建的記錄的 URL 中,找到記錄 ID。
網址https://sample.cybozu.com/k/123/show#record=1
之record=
是記錄ID。
在上述情況下,記錄 ID 為「1」。
Step2:創建範例代碼
使用包含以下內容的檔案名 App.java
建立檔案:根據您的環境重寫以下內容。
- 第 10 行:網域名稱
- 第 11 行:您建立的應用的 API 權杖
- 第 12 行:您建立的應用的應用 ID
- 第 13 行:添加的測試資料的記錄 ID
在實際程式中,避免對功能變數名稱和認證資訊進行硬編碼,並將它們定義並載入到 Java 屬性檔中。
為了示例,省略了異常處理。在實際程式中,適當地處理錯誤。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
package com.cybozu.devnet;
import com.kintone.client.KintoneClient;
import com.kintone.client.KintoneClientBuilder;
import com.kintone.client.RecordClient;
import com.kintone.client.model.record.Record;
public class App {
public static void main(String[] args) throws Exception {
String baseUrl = "https://sample.cybozu.com"; //網域名稱
String apiToken = "API_TOKEN"; // API 權杖
long appId = 1L; // 應用程式 ID
long recordId = 1L; // 記錄ID
System.out.println("Hello, kintone Java Client");
// 執行 API 權杖驗證
try (KintoneClient client = KintoneClientBuilder.create(baseUrl).authByApiToken(apiToken).build()) {
// 獲取用於處理記錄的用戶端
RecordClient recordClient = client.record();
// 從kintone選取記錄
Record record = recordClient.getRecord(appId, recordId);
// 列印記錄ID
System.out.println(record.getId());
}
}
}
|
使用包含以下內容的檔案名 build.gradle
建立檔案:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
plugins {
id 'java'
id 'com.github.johnrengelman.shadow' version '5.2.0'
}
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'com.cybozu.devnet.App'
repositories {
mavenCentral()
}
jar {
manifest {
attributes 'Main-Class': 'com.cybozu.devnet.App'
}
}
dependencies {
implementation 'com.kintone:kintone-java-client:0.9.0'
}
|
使用以下設定部署App.java
和build.gradle
:
1
2
3
4
5
6
7
8
9
|
sample
├── build.gradle
└── src
└── main
└── java
└── com
└── cybozu
└── devnet
└── App.java
|
Step3:編譯
在「sample」目錄下執行以下命令。
1
2
|
gradle clean
gradle build
|
java-all.jar
在「build」的「libs」目錄下生成。
Step4:動作確認
執行以下命令:
1
|
java -jar build/libs/java-all.jar
|
如果列印了以下結果,則表示列印成功。
1
2
|
Hello, kintone Java Client
1
|
Step1:準備kintone應用
-
添加單行文字方塊,創建kintone應用。
-
在您建立的應用中生成 API 權杖。
有關詳細說明,請參閱以下頁面。
生成 API 令牌
-
在您創建的應用的 URL 中,找到應用 ID。
網址https://sample.cybozu.com/k/123
是應用程式ID。
在上述情況下,應用ID為「123」。
-
添加一條記錄作為測試數據。
-
在您創建的記錄的 URL 中,找到記錄 ID。
網址https://sample.cybozu.com/k/123/show#record=1
之record=
是記錄ID。
在上述情況下,記錄 ID 為「1」。
Step2:創建範例代碼
同“如果是Gradle項目 - Step2: 範例代碼"一樣,創建App.java
。
使用包含以下內容的檔案名 pom.xml
建立檔案:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cybozu.devnet</groupId>
<artifactId>sample-kintone-java-client</artifactId>
<version>1.0</version>
<name>sample-kintone-java-client</name>
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.kintone</groupId>
<artifactId>kintone-java-client</artifactId>
<version>0.9.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.cybozu.devnet.App</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
|
使用以下設定部署App.java
和pom.xml
:
1
2
3
4
5
6
7
8
9
|
sample
├── pom.xml
└── src
└── main
└── java
└── com
└── cybozu
└── devnet
└── App.java
|
Step3:編譯
在「sample」目錄下執行以下命令。
在「target」目錄下 sample-kintone-java-client-1.0-jar-with-dependencies.jar
創建。
Step4:動作確認
執行以下命令:
1
|
java -jar target/sample-kintone-java-client-1.0-jar-with-dependencies.jar
|
如果列印了以下結果,則表示列印成功。
1
2
|
Hello, kintone Java Client
1
|
使用kintone用戶端操作時,請按照以下步驟操作。
-
生成kintone用戶端
-
獲取您想要合作的客戶
-
調用方法操作kintone
Step1:創建kintone用戶端
使用KintoneClientBuilder
創建kintoneClient。
此時,設置身份驗證資訊。
有關說明,請參閱以下頁面。
關於身份驗證
關閉處理
kintoneClient 有內部 HTTP 連接。
當進程完成且kintoneClient完成工作后, close()
調用該方法執行關閉進程。
其他
KintoneClientBuilder
允許您設定各種設置,例如連接超時和代理設置。
setAppendixUserAgent()
您還可以使用該方法包含要添加到 User-Agent 的字串。
如果設置程式名稱和可以識別處理內容的值,則Cybozu將來發生性能問題時會更容易進行調查,並且可能能夠更快地解決問題。
請好好利用它
Step2:獲取要操作的用戶端
創建kintoneClient后,獲取要使用的目標用戶端。
該操作通過以下方式執行:
此示例假設您有一個名為 getkintoneClient() 的方法來獲取kintoneClient。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
try (KintoneClient client = getKintoneClient()) {
// 獲取用戶端以與應用交互
AppClient appClient = client.app();
// 獲取用於處理記錄的用戶端
RecordClient recordClient = client.record();
// 獲取用於處理空間的用戶端
SpaceClient spaceClient = client.space();
// 獲取用於檔案操作的用戶端
FileClient fileClient = client.file();
// 獲取客戶端以進行架構獲取
SchemaClient schemaClient = client.schema();
}
|
在上面的代碼中,使用了 try-with-resources,以便在進程完成時自動 kintoneClient#close()
調用該方法。
除非有特殊情況,否則請在完成後使用 try-with-resources。
正確調用close()
方法。
Step3:調用方法並操作kintone
生成要使用的用戶端后,調用操作方法。
如需操作kintone,請將請求類傳遞給kintone REST API 中各API對應的方法。
某些方法還具有包裝它們的方法,以便更方便地使用。
方法1:將請求類傳遞給各API對應的方法,操作kintone
如果將請求類「API名 + Request」傳遞給要操作的用戶端,則可以獲取回應類「API 名+ ResponseBody」的實例。
以下是獲取單個記錄的 API示例。
- 請求類:
GetRecordRequest
- 回應類:
GetRecordResponseBody
1
2
3
4
5
6
7
8
9
10
11
12
13
|
// 創建用於記錄獲取的請求類的實例
GetRecordRequest req = new GetRecordRequest();
req.setApp(3L); // 設定要提取的應用程式 ID(應用 ID 為long型 )
req.setId(15L); // 設定要獲取的記錄 ID(記錄 ID 類型為 long)
// 將其傳遞給記錄客戶端並調用 API
GetRecordResponseBody resp = client.record().getRecord(req);
// 從回應中獲取 Record 物件
Record record = resp.getRecord();
// 顯示記錄ID
System.out.println(record.getId());
|
方法2:使用更簡單的方法操作kintone
getRecord 方法具有更方便的方法。使用它,您可以按如下方式編寫上述過程:
1
2
3
4
5
|
// 使用更方便的方法來獲取記錄資訊
Record record = client.record().getRecord(3L, 15L);
// 顯示記錄ID
System.out.println(record.getId());
|
此客戶端支援以下身份驗證方法。
如果除了kintone的URL和認證資訊之外沒有其他設置,則只需使用defaultClient方法創建kintoneClient即可。
密碼身分認證
1
2
3
4
5
6
7
8
9
10
|
String baseUrl = "https://sample.cybozu.com";
String username = "username";
String password = "password";
KintoneClient client = KintoneClientBuilder
// 設置要訪問的kintone URL
.create(baseUrl)
// 設置用於身份驗證的使用者名和密碼
.authByPassword(username, password)
.build();
|
API 權杖身分驗證
1
2
3
4
5
6
7
8
9
|
String baseUrl = "https://sample.cybozu.com";
String apiToken = "token";
KintoneClient client = KintoneClientBuilder
// 設置要訪問的kintone URL
.create(baseUrl)
// 設置用於身份驗證的 API 權杖
.authByApiToken(apiToken)
.build();
|
具有安全設置的環境
您還可以設置客戶端憑證和基本身份驗證資訊。
具有Basic身分驗證的環境
1
2
3
4
5
6
7
8
9
|
String baseUrl = "https://sample.cybozu.com";
String apiToken = "token";
KintoneClient client = KintoneClientBuilder
.create(baseUrl)
.authByApiToken(apiToken)
// 設置Basic身分驗證的使用者名和密碼
.withBasicAuth("basic", "password")
.build();
|
具有SecureAccess的環境
1
2
3
4
5
6
7
8
9
10
|
// 使用用戶端憑證,請在子域后添加 .s
String baseUrl = "https://sample.s.cybozu.com";
String apiToken = "token";
KintoneClient client = KintoneClientBuilder
.create(baseUrl)
.authByApiToken(apiToken)
// 設置用戶端憑證和密碼
.withClientCertificate(Paths.get("/path/to/ file"), "password")
.build();
|
使用kintone Java Client,在開發Java批處理程式和移動應用時,可以輕鬆執行kintone REST API。
kintone Java Client的使用方法請參考示例。
樣本集
有關庫更新資訊,請參閱以下頁面。
庫版本
- 2020年6月1日:修復了「如何開始」從使用本地 jar 檔到使用中央存儲庫的問題。