法令の名前や内容を取得できる、e-Gov法令APIを使ってみました。
e-Gov(イーガブ)は、デジタル庁が整備、運営しているサイトです。サイトの利用者は、行政機関に対する届出・申請等の手続、法令の検索、行政機関が提供するオープンデータの検索、パブリックコメントの提出等をすることができます。
APIとは、簡単にいうと、データを投げ入れることで、何らかの処理を行って、何らかの結果を返してくれる「窓口」のようなものです。
例えば、メッセージアプリ(LINEやSlack)が提供するAPIに、この人に対してこういうメッセージを送ってほしいという指示を送信すると、実際にメッセージを送信してくれます。
APIは、Application Programming Interfaceの略称です。Interfaceには「接触面」「接点」という意味がありますが、APIはまさに特定のアプリケーションと別のアプリケーションの「接点」となります。
法令APIは、4種類のAPIで構成されています(以下の説明は、「法令API仕様書」2頁より)。
以下では、各APIを実際に使ってみます。それぞれの箇所で紹介するURLには、ブラウザ上でもアクセスでき、最長10秒程度待てばデータが表示されます。
例えば、全法令の一覧を取得するときは、以下のURLにアクセスします。
https://laws.e-gov.go.jp/api/1/lawlists/1
このようなデータが取得できます。明治時代の太政官布告のうち、今なお効力を有するもの(「爆発物取締罰則」や「決闘罪ニ関スル件」など)も取得できるようです。
民法の全文を取得してみます。
まず、法令名一覧取得APIで民法の情報を取得します。すると、民法の法令番号が「明治二十九年法律第八十九号」で、法令IDは「129AC0000000089」だとわかります(①参照)。
したがって、民法の全文を取得するには、以下のいずれかのURLを用います。
このようなデータが取得できます
例えば、民法1条2項(信義誠実の原則)の内容を取得するには、以下のいずれかのURLを用います。
このようなデータが取得できます
例えば、2020年11月24日に更新された法令の一覧を取得するなら、以下のURLを用いることになります。
https://laws.e-gov.go.jp/api/1/updatelawlists/20201124
このようなデータが取得できます
法令APIからデータを取得して(参考)、コンソールログに表示するプログラムの例を示します。言語は、JavaScriptです。
ブラウザの「デベロッパーツール」を開き(Ctrl/Command + Shift + I)、「コンソール」にコードを貼り付けてみてください。数秒後に、民法1条2項の条文(「権利の行使及び義務の履行は、信義に従い誠実に行わなければならない。」)が表示されます。
lawId,article,paragraphの値を変えれば、別の法律の別の条文が表示されます。いろいろ試してみると面白いと思います。
※プログラムの実行は自己責任でお願いします。
//法令ID、条、項を定義する
const lawId = "129AC0000000089";//民法
const article = "1";//1条
const paragraph = "2";//2項
//URLを組み立てる
const url = "https://laws.e-gov.go.jp/api/1/articles;lawId=" + lawId + ";article=" + article + ";paragraph=" + paragraph + ";";
//データ取得関数を定義する(非同期処理を使用)
async function getData() {
//リクエストを送信する(fetchAPI)
const r = await fetch(url);
const xml = await r.text();
//受け取ったXMLデータを読み込む
const parser = await new DOMParser();
const txt = await parser.parseFromString(xml, "text/xml");
//データから条文を取得する
const sentences = await txt.querySelectorAll("Sentence");
for (s of sentences) {
//コンソールログに書き込む
console.log(s.textContent);
}
};
//データ取得関数の実行
getData();
今回は、デジタル庁の提供する「法令API」を使ってみました。人間が法令を検索する際は、e-Gov法令検索の方が便利ですが、プログラムが法令を検索するには、こちらのAPIの方が便利だと思います。法律と技術を組み合わせる「リーガルテック」分野は、今後どのような発展を遂げていくのでしょうか。楽しみです。
※APIの詳細な仕様については、「法令API仕様書」をご一読ください。