kintone의 새로운 JS-SDK "kintone-rest-api-client"를 사용해 보았습니다.
소개
작년부터 수수하게 통지는 나왔습니다만, kintone의 새로운 JS-SDK가 ver.1.0.0으로서 드디어 정식 릴리스되었습니다 👏👏👏
@kintone/rest-api-client Ver.1.0.0
htps : // 기주 b. 코 m / 킨 토네 / js - sdk / t ree / ma s r / pa c ga s / re st - ap - c peen t
앞으로는 이 SDK가 JS-SDK에서는 주가 되기 때문에, 꼭 만져 보세요~
그래서,
나도 만져 보았으므로 그 메모를 씁니다. 몇 가지 주의점도 있었기 때문에 그것도 붙잡음으로 더합니다.
※ 뭐 사실은 작년부터 ver.0계로서는 공개는 되어 있었습니다
도구를 넣는 방법
지금까지의 SDK와 마찬가지로 npm
로 넣습니다. 리포지토리가 별도이므로 기존 JS-SDK 업데이트로 들어가지 않으므로 조심하십시오.
npm install @kintone/rest-api-client
음, 여기는 아무런 문제가 없습니다!
코드 쓰기 전에
제대로 URL이라든지 인증 키는 .envファイル
에 쓰도록 합시다.
※ 자신도 잘 코드에 직접 써 버리므로 가능한 환경 변수로 버릇을 붙이지 않으면
# dotenvモジュールのインストール
npm install dotenv
.env# kintone settings
KINTONE_URL=https://<subdomain>.cybozu.com
KINTONE_APITOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXX
여담) dotenv 메모
조금 조사해 보면, 코드내에 require('dotenv').config();
라고 쓰는 패턴과, 실행시에 인수에 --require dotenv/config
를 붙이는 패턴의 2 종류 있다고 한다.
PC 자체의 환경 변수라든지 AWS Lambda의 환경 변수를 사용하는 경우는 require('dotenv').config();
는 필요 없기 때문에, 거기에 근거하면 코드내에 쓰는 것보다 인수에 붙이는 편이 좋은 것 같다. 과연.
다만 런타임에 인수를 붙이는 것을 잊을 것 같다 ~
가져오기 및 연결을 붙이는 방법
지금까지로 바뀌고 있습니다. 매우 편해졌습니다.
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
단일 객체로 URL, 인증(로그인, API 토큰, Basic) 전부 지정합니다
💡 포인트
새로운 SDK는 TypeScript
로 쓰여 있으므로 함수의 파라미터 등 무엇을 쓰면 좋은지 설명이 나옵니다. 이것이 꽤 편리! !
보완되기 때문에 일부러 문서 읽고 쓰는 방법 조사할 필요도 없음!
⚠ 주의점
아는 사람은 알겠다고 생각합니다만, 최초의 임포트시의 변수를 KintoneRestAPIClient
후보가 나오지 않는다는 것은 어딘가 잘못되어 있다는 것입니다!! 이 후보 공지는 실수의 판단에도 사용할 수 있다!
※JavaScript 분할 대입 라고 녀석이 관계하고 있습니다.
기본은 KintoneRestAPIClient
라고 쓰면 좋은 생각이 듭니다만, 아무래도 다른 변수명을 사용하고 싶은 경우는 아래와 같이 하면 됩니다.
const hoge = require('@kintone/rest-api-client').KintoneRestAPIClient;
const client = new hoge(...);
레코드 등록
보완에 몸을 맡겨 쓰면 OK!
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
client.record.addRecord({
app: XXXX,
record: {
text: {
value: 'SDK使いやすーい!'
}
}
}).then(resp => console.log(resp)).catch(err => console.log(err));
파일 업로드
kintone API의 파일 업로드 흐름과 마찬가지로,
지금까지의 SDK와 마찬가지로
npm
로 넣습니다. 리포지토리가 별도이므로 기존 JS-SDK 업데이트로 들어가지 않으므로 조심하십시오.npm install @kintone/rest-api-client
음, 여기는 아무런 문제가 없습니다!
코드 쓰기 전에
제대로 URL이라든지 인증 키는 .envファイル
에 쓰도록 합시다.
※ 자신도 잘 코드에 직접 써 버리므로 가능한 환경 변수로 버릇을 붙이지 않으면
# dotenvモジュールのインストール
npm install dotenv
.env# kintone settings
KINTONE_URL=https://<subdomain>.cybozu.com
KINTONE_APITOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXX
여담) dotenv 메모
조금 조사해 보면, 코드내에 require('dotenv').config();
라고 쓰는 패턴과, 실행시에 인수에 --require dotenv/config
를 붙이는 패턴의 2 종류 있다고 한다.
PC 자체의 환경 변수라든지 AWS Lambda의 환경 변수를 사용하는 경우는 require('dotenv').config();
는 필요 없기 때문에, 거기에 근거하면 코드내에 쓰는 것보다 인수에 붙이는 편이 좋은 것 같다. 과연.
다만 런타임에 인수를 붙이는 것을 잊을 것 같다 ~
가져오기 및 연결을 붙이는 방법
지금까지로 바뀌고 있습니다. 매우 편해졌습니다.
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
단일 객체로 URL, 인증(로그인, API 토큰, Basic) 전부 지정합니다
💡 포인트
새로운 SDK는 TypeScript
로 쓰여 있으므로 함수의 파라미터 등 무엇을 쓰면 좋은지 설명이 나옵니다. 이것이 꽤 편리! !
보완되기 때문에 일부러 문서 읽고 쓰는 방법 조사할 필요도 없음!
⚠ 주의점
아는 사람은 알겠다고 생각합니다만, 최초의 임포트시의 변수를 KintoneRestAPIClient
후보가 나오지 않는다는 것은 어딘가 잘못되어 있다는 것입니다!! 이 후보 공지는 실수의 판단에도 사용할 수 있다!
※JavaScript 분할 대입 라고 녀석이 관계하고 있습니다.
기본은 KintoneRestAPIClient
라고 쓰면 좋은 생각이 듭니다만, 아무래도 다른 변수명을 사용하고 싶은 경우는 아래와 같이 하면 됩니다.
const hoge = require('@kintone/rest-api-client').KintoneRestAPIClient;
const client = new hoge(...);
레코드 등록
보완에 몸을 맡겨 쓰면 OK!
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
client.record.addRecord({
app: XXXX,
record: {
text: {
value: 'SDK使いやすーい!'
}
}
}).then(resp => console.log(resp)).catch(err => console.log(err));
파일 업로드
kintone API의 파일 업로드 흐름과 마찬가지로,
# dotenvモジュールのインストール
npm install dotenv
# kintone settings
KINTONE_URL=https://<subdomain>.cybozu.com
KINTONE_APITOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXX
지금까지로 바뀌고 있습니다. 매우 편해졌습니다.
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
단일 객체로 URL, 인증(로그인, API 토큰, Basic) 전부 지정합니다
💡 포인트
새로운 SDK는
TypeScript
로 쓰여 있으므로 함수의 파라미터 등 무엇을 쓰면 좋은지 설명이 나옵니다. 이것이 꽤 편리! !보완되기 때문에 일부러 문서 읽고 쓰는 방법 조사할 필요도 없음!
⚠ 주의점
아는 사람은 알겠다고 생각합니다만, 최초의 임포트시의 변수를
KintoneRestAPIClient
후보가 나오지 않는다는 것은 어딘가 잘못되어 있다는 것입니다!! 이 후보 공지는 실수의 판단에도 사용할 수 있다!
※JavaScript 분할 대입 라고 녀석이 관계하고 있습니다.
기본은
KintoneRestAPIClient
라고 쓰면 좋은 생각이 듭니다만, 아무래도 다른 변수명을 사용하고 싶은 경우는 아래와 같이 하면 됩니다.const hoge = require('@kintone/rest-api-client').KintoneRestAPIClient;
const client = new hoge(...);
레코드 등록
보완에 몸을 맡겨 쓰면 OK!
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
client.record.addRecord({
app: XXXX,
record: {
text: {
value: 'SDK使いやすーい!'
}
}
}).then(resp => console.log(resp)).catch(err => console.log(err));
파일 업로드
kintone API의 파일 업로드 흐름과 마찬가지로,
const { KintoneRestAPIClient } = require('@kintone/rest-api-client');
const env = process.env;
const client = new KintoneRestAPIClient({
baseUrl: env.KINTONE_URL,
auth: {
apiToken: env.KINTONE_APITOKEN
}
});
client.record.addRecord({
app: XXXX,
record: {
text: {
value: 'SDK使いやすーい!'
}
}
}).then(resp => console.log(resp)).catch(err => console.log(err));
kintone API의 파일 업로드 흐름과 마찬가지로,
fileKey
가져 오기 fileKey
를 레코드에 저장 그리고 두 번 처리를 작성합니다.
⚠ 주의점
현재 SDK는 파일 경로 지정을 지원하지 않으므로 로컬 파일은 fs 모듈 등을 사용하여 Buffer로 변환 한 다음 업로드해야합니다. 뭐 거기까지 번거롭지는 않지만.
const fs = require('fs'); // ファイル操作用のモジュールをインポート
// 他は上で書いてるし割愛
client.file.uploadFile({
file: {
name: 'hoge.png',
data: fs.readFileSync('<YOUR_FILE_PATH>')
}
}).then(resp => {
return client.record.addRecord({
app: XXXX,
record: {
file: {
value: [{
fileKey: resp.fileKey
}]
}
}
});
}).then(resp => console.log(resp)).catch(err => console.log(err));
파일 다운로드
업로드와 반대의 순서로 하면 OK입니다.
// この部分は割愛
client.record.getRecord({
app: XXXX,
id: XXXX
}).then(resp => {
return client.file.downloadFile({
fileKey: resp.record.file.value[0].fileKey
});
}).then(res => {
fs.writeFileSync('hoge.png', res);
}).catch(err => console.log(err));
결론
아니, 보완이 있으면 굉장히 편리하네요~👏
어쨌든 「다음 오는 것은 app
인가?
그럼! ≧(+・` ཀ・´)≦
Reference
이 문제에 관하여(kintone의 새로운 JS-SDK "kintone-rest-api-client"를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/RyBB/items/633ef6f9ff5ff10d5879
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// この部分は割愛
client.record.getRecord({
app: XXXX,
id: XXXX
}).then(resp => {
return client.file.downloadFile({
fileKey: resp.record.file.value[0].fileKey
});
}).then(res => {
fs.writeFileSync('hoge.png', res);
}).catch(err => console.log(err));
아니, 보완이 있으면 굉장히 편리하네요~👏
어쨌든 「다음 오는 것은
app
인가?그럼! ≧(+・` ཀ・´)≦
Reference
이 문제에 관하여(kintone의 새로운 JS-SDK "kintone-rest-api-client"를 사용해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/RyBB/items/633ef6f9ff5ff10d5879텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)