Node.js での REST API 呼び出しのサンプルコード
Node.jsでREST API呼び出しを行う方法
概要
手順
- requestライブラリをインストールする
npm install request
- REST API呼び出しを行う
const request = require('request');
// GETリクエストを行う
request('https://jsonplaceholder.typicode.com/posts/1', (error, response, body) => {
if (error) {
console.error(error);
return;
}
console.log(JSON.parse(body));
});
// POSTリクエストを行う
request({
url: 'https://jsonplaceholder.typicode.com/posts',
method: 'POST',
json: {
title: 'My new post',
body: 'This is the content of my post.',
userId: 1
}
}, (error, response, body) => {
if (error) {
console.error(error);
return;
}
console.log(body);
});
その他のオプション
- Node.jsには、
axios
やsuperagent
など、request
以外のREST API呼び出しライブラリも多数あります。
curl
コマンドは、REST API呼び出しを行うための別の方法です。 curl
コマンドは、コマンドラインから簡単に使用できますが、Node.jsライブラリほど柔軟性と機能がありません。
例
以下の例は、curl
コマンドを使用して、前述のGETリクエストとPOSTリクエストを実行する方法を示しています。
# GETリクエスト
curl https://jsonplaceholder.typicode.com/posts/1
# POSTリクエスト
curl -X POST https://jsonplaceholder.typicode.com/posts \
-H 'Content-Type: application/json' \
-d '{ "title": "My new post", "body": "This is the content of my post.", "userId": 1 }'
Node.jsを使用してREST API呼び出しを行うには、request
ライブラリを使用するのが一般的です。 request
ライブラリは、さまざまなオプションを提供しており、柔軟性と機能性に優れています。
Node.js での REST API 呼び出しのサンプルコード
GET リクエスト
この例では、request
ライブラリを使用して、JSONPlaceholder API から投稿を取得する方法を示します。
const request = require('request');
request('https://jsonplaceholder.typicode.com/posts/1', (error, response, body) => {
if (error) {
console.error(error);
return;
}
console.log(JSON.parse(body));
});
POST リクエスト
const request = require('request');
request({
url: 'https://jsonplaceholder.typicode.com/posts',
method: 'POST',
json: {
title: 'My new post',
body: 'This is the content of my post.',
userId: 1
}
}, (error, response, body) => {
if (error) {
console.error(error);
return;
}
console.log(body);
});
PUT リクエスト
const request = require('request');
request({
url: 'https://jsonplaceholder.typicode.com/posts/1',
method: 'PUT',
json: {
id: 1,
title: 'My updated post',
body: 'This is the updated content of my post.',
userId: 1
}
}, (error, response, body) => {
if (error) {
console.error(error);
return;
}
console.log(body);
});
DELETE リクエスト
const request = require('request');
request({
url: 'https://jsonplaceholder.typicode.com/posts/1',
method: 'DELETE'
}, (error, response, body) => {
if (error) {
console.error(error);
return;
}
console.log(body);
});
エラー処理
すべての API 呼び出しでエラー処理を行うことが重要です。 エラー処理により、問題が発生した場合にアプリケーションがクラッシュするのを防ぐことができます。
const request = require('request');
request('https://jsonplaceholder.typicode.com/posts/1', (error, response, body) => {
if (error) {
console.error(error);
return;
}
if (response.statusCode !== 200) {
console.error('Error:', response.statusCode);
return;
}
console.log(JSON.parse(body));
});
ヘッダー
API 呼び出しにヘッダーを追加できます。 ヘッダーは、認証情報やその他の情報を API に提供するために使用されます。
const request = require('request');
request({
url: 'https://jsonplaceholder.typicode.com/posts/1',
headers: {
'Authorization': 'Bearer YOUR_TOKEN'
}
}, (error, response, body) => {
// ...
});
URL パラメータ
API 呼び出しに URL パラメータを追加できます。 URL パラメータは、API にクエリ情報を提供するために使用されます。
const request = require('request');
request('https://jsonplaceholder.typicode.com/posts?userId=1', (error, response, body) => {
// ...
});
カスタム HTTP メソッド
request
ライブラリを使用して、GET、POST、PUT、DELETE 以外の HTTP メソッドを実行できます。
const request = require('request');
request({
url: 'https://jsonplaceholder.typicode.com/posts/1',
method: 'PATCH',
json: {
title: 'My patched post'
}
}, (error, response, body) => {
これらのライブラリはすべて、それぞれ長所と短所があります。 最適なライブラリは、特定のニーズによって異なります。
以下に、各ライブラリの簡単な比較を示します。
ライブラリ | 長所 | 短所 |
---|---|---|
request | 使いやすい、多くの機能 | 非推奨になりつつある |
axios | Promise ベース、人気のある | やや冗長な API |
superagent | 機能豊富、可読性が高い | やや複雑 |
node-fetch | 軽量、ネイティブの Promise API を使用する | 機能が少ない |
got | 使いやすい、Promise ベース | 比較的新しいため、コミュニティが小さい |
その他の考慮事項
REST API を呼び出す際に考慮すべきその他の事項は次のとおりです。
- 認証: API キー、トークン、またはその他の認証情報を使用して、API を認証する必要がある場合があります。
- ペイロード: POST または PUT リクエストを行う場合は、JSON またはその他の形式のペイロードを送信する必要がある場合があります。
- エラー処理: API 呼び出しが失敗する可能性があるため、エラーを処理する必要があります。
- レート制限: 多くの API には、リクエストのレートを制限するレート制限があります。 これらの制限に準拠する必要があります。
Node.js で REST API を呼び出す方法は数多くあります。 最適な方法は、特定のニーズによって異なります。 上記の情報を参考に、ニーズに合ったライブラリとアプローチを選択してください。
rest curl node.js