概要
こんにちは!
本記事では、経済産業省が無料で公開しているAPIを紹介します。
APIサービス名は、『gBizINFO (ジービズインフォ)』です。
法人情報を検索のが出来るサイトですが、APIも公開されています!
JavaScriptで連携まで、本記事で紹介いたします。
DEMO
初期画面
企業情報取得ボタンを押す
処理が完了すると、情報が画面に表示されます。
コード
使用したエンドポイント
https://info.gbiz.go.jp/hojin/v1/hojin/updateInfo
パラメータ
期間を「2023/01/01~2024/01/01」と指定しました。
'?page=1&from=20230101&to=20240101'
トークン
リクエストヘッダーのX-hojinInfo-api-tokenに記述します。
利用申請を行うと発行できるので、使用時置き換えてください。
index.js
import express from 'express';
import fetch from 'node-fetch';
const __dirname = import.meta.dirname;
const app = express();
async function api() {
const param = '?page=1&from=20230101&to=20240101';
const endPoint = 'https://info.gbiz.go.jp/hojin/v1/hojin/updateInfo';
const url = endPoint + param;
const options = {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'X-hojinInfo-api-token': {APIトークンを取得し記述}
}
};
try {
const response = await fetch( url, options );
if (!response.ok) {
throw new Error(`すまん。エラーが発生した!!!!: ${response.status}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error('データの取得に失敗:', error);
}
}
app.get('/', (req, res) => {
res.sendFile( __dirname + '/index.html' );
});
app.get('/info', async (req, res) => {
try {
const data = await api();
res.json(data);
} catch (error) {
res.status(500).send('すまん。エラーが発生した!!');
}
});
app.listen( 8000, () => {
console.log('Server listening on port 8000');
});
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>API test</title>
</head>
<script>
async function info_get(){
console.log("処理開始");
try {
const response = await fetch("/info");
if (!response.ok) {
throw new Error(`すまん。エラーが発生した!!!!: ${response.status}`);
}
const data = await response.json();
result(data["hojin-infos"]);
} catch (error) {
console.error('データの取得に失敗:', error);
}
}
function result(data){
let disp="";
for(let i = 0 ; i<data.length ; i++ ){
disp = disp + '\n' + `法人名(${i}):` + data[i].name + ` 法人番号:` + data[i].corporate_number;
}
document.getElementById('info').innerText = disp;
}
</script>
<body>
<input type="button" onclick="info_get()" value="企業情報を取得" >
<h1>結果</h1>
<text id="info">初期値</text>
</body>
<style>
input{
height: 40px;
width: 200px;
background-color: #f5deb3;
}
</style>
</html>
トークン取得方法/ポリシー
APIを利用するには申請をする必要があるようです。
プライバシーポリシーに同意し、すんなり登録ができました。
使用する時は、よく読み自己責任で利用しましょう。
ブライバシーポリシー抜粋
1 基本的考え方
gBizINFO 運営事務局では、gBizINFO REST API(https://info.gbiz.go.jp/hojin/swagger-ui.html)(以下、「当
API」という。)の運営の円滑な運営に必要な範囲で、当 API を利用される皆様の情報を収集します。収集した
情報は利用目的の範囲内で適切に取り扱います。
2 収集する情報の範囲
2.1 当 API にアクセスした際に、アクセス日時、IP アドレス、指定したパラメータ等のアクセス情報を自
動的に収集します。
2.2 当 API の利用申請では、下記の情報をご提供いただきます。
(1) 法人担当者の方:法人番号、法人名、担当部署名、郵便番号、所在地、電話番号、メールアドレス、
API の利用目的および利用予定
(2) 個人利用者の方:メールアドレス、API の利用目的 および利用予定3 利用目的
3.1 2.1 節で収集した情報、および、2.2 節でご提供いただいた、法人番号・法人名・担当部署名・郵便番
号・所在地・電話番号・メールアドレス・API の利用目的および利用予定は、当 API および gBizINFO
のサービス運営や施策立案を円滑に行うために利用します。
3.2 2.2 節でご提供いただいたメールアドレスは、当 API にアクセスするためのアクセストークンのご連
絡、当 API の利用に係るお問い合わせ、当 API および gBizINFO のサービスに係るお知らせ、アン
ケートやご意見収集に係るご連絡に利用します。
引用:https://info.gbiz.go.jp/common/docs/policy.pdf
詰みポイント
取得したデータの取り出しには、注意が必要です!
企業情報は、hojin-infosというプロパティで帰ってきます。
ハイフンが入っているため、BADのような取り出し方はできません。
演算子のマイナスとして認識されてしまうようです。
GOODの記述方法のように取り出しましょう。
環境/構築手順
実行環境
M2 Mac Book Air
docker
ubuntu:20.04
Node.js:v23.4.0
1.Ubuntu:20.04の環境を整える
2.Node.jsv23.4.0/必要なパッケージのダウンロード
3.初期設定/ソースコードの配置
- 1.Ubuntu:20.04の環境を整える(dockerで構築します)
-
Ubuntu:20.04のダウンロード
docker pull ubuntu:20.04
コンテナの作成
docker run -it -d --name コンテナの名前 -p 3000:8000 ubuntu:20.04
コンテナの中に入る
docker exec -it コンテナの名前 /bin/bash
初期作業としてアップデート
apt update apt upgrade apt install npm
作業用フォルダに移動/作成
cd home mkdir test cd test
- 2.Node.jsv23.4.0/必要なパッケージのダウンロード
-
apt install nodejs
パッケージ管理ツールnpmをダウンロード
apt install npm
Node.jsプロジェクトの初期化
npm init -y
-
Node.jsのバージョンツールのダウンロード
npm install -g n
-
Node.jsをアップデートする
n 23.4.0
フレームワークexpressをインストール
npm install express
- 3.ソースコードの配置
-
作業フォルダ直下に、index.jsとindex.htmlを配置する
. |-- index.html |-- index.js |-- node_modules |-- package-lock.json |-- package.json
まとめ
無料で公開されていて、非常にありがたいですね。
造りもシンプルなので、API連携が初めての方にも丁度いいかなと思います!
うまくいかない箇所などがあれば、コメントください。
できる限り回答させていただきます😎
コメント