ソフトウェアをインストールせずにAPIを実行する

アプリケーション開発

本記事では、ソフトウェアをインストールせずにWebAPIを実行する方法を記載します。

Z-A-K-I
Z-A-K-I

バックエンドAPIを開発中だが、開発したAPIを外部から実行してテストしたい。

だけど、ソフトウェアのインストールは会社の規定で申請が必要なのでしたくない。

と、思ってる方におすすめです。

この記事では、以下のことを紹介してます。

  • WebAPIをソフトウェアをインストールせずに実行する方法
  • 大量リクエストを実行するバッチプログラムの紹介

WebAPIの実行方法として、Postmanというメジャーなツールが存在します。

しかし、お客さまの環境での開発や社内で開発をしている場合、ソフトウェアのインストールに制限があり、インストールのために申請が必要だったりします。このような場合にすぐに作業ができなくなり困ります。

本記事では、そういう場面に遭遇した場合に役立つ内容を紹介します。

WebAPIを実行する方法

結論からいいますと、curlというコマンドを利用します。

curlコマンドとは、HTTPやHTTPS通信を実行できるコマンドツールです。下記サイトでわかりやすく記載されています。

知っておくとちょっと便利!curl コマンドの使い方をご紹介 | SIOS Tech. Lab
curlコマンドの使い方やオプションについてご紹介します。 curlコマンドは、様々な通信プロトコルでデータの送受信を行うことができます。よく使われる方法としては、Webサイトへhttpリクエストを送信してコンテンツを表示する、等があります...

curlコマンドはWindowsの場合だとコマンドプロンプト上で実行します。

コマンドは以下のように実行します。

curl -X POST -H "Content-Type: application/json" -d '{"key1":"value1","key2":"value2"}' http://example.com/api/resource

「-X」コマンドでPOSTやGETを指定、「-X」オプションでContent-Typeを指定し、「-d」オプションで送信するデータを指定します。

パラメータを別ファイルとして管理することも可能です。以下のようにファイルを指定することができます。

curl -d @data.json -H "Content-Type: application/json" https://example.com/api/resourse

curlコマンド自動作成バッチ

少し話は変わりますが、大量のcurlコマンドを作成しなければならなくなった時に作成したプログラムを紹介します。

以下のプログラムは、特定のフォルダに存在するjsonファイルを読み込み、そのファイル数分のcurlコマンドを発行するWindowsバッチファイルです。

実行準備として、特定のフォルダにリクエストを行うjsonファイルを格納し、実行します。

実行後、curlコマンドのテキストファイルが作成されます。

ファイル作成後、コマンドプロンプト上でテキストファイルの内容をコピーアンドペーストで貼り付けることで、curlコマンドが実行されます。

@echo off
setlocal enabledelayedexpansion

set "folder_path=C:\Path\To\Your\Folder"
set "output_file=output_commands.txt"

if not exist "%folder_path%" (
  echo Folder not found: %folder_path%
  exit /b 1
)

if not exist "%output_file%" (
  type nul > "%output_file%"
) else (
  del "%output_file%"
)

for %%i in ("%folder_path%\*.json") do (
  set "file_name=%%~nxi"
  set "curl_command=curl -X POST -H "Content-Type: application/json" -d @%file_name% http://example.com/api/resource"
  echo !curl_command! >> "%output_file%"
)

echo Commands have been written to %output_file%
exit /b 0

jsonファイルを相対パスで指定する場合のプログラムは以下となります。

@echo off
setlocal enabledelayedexpansion

rem バッチファイルのディレクトリを取得
set "script_dir=%~dp0"

rem 相対パスで指定するフォルダ
set "relative_folder=..\OtherFolder"

rem 絶対パスを構築
set "absolute_path=!script_dir!!relative_folder!"

echo Absolute Path: !absolute_path!

rem ここから先は absolute_path を使用して処理を続ける

まとめ

本記事では、ソフトウェアをインストールせずにWebAPIを実行する方法を紹介しました。

社内や顧客環境の制約によってソフトウェアのインストールに申請などの手続きが存在する場合でも、WebAPIの開発をストップさせないために役立つ内容を紹介しました。

本記事が皆様の参考になれば幸いです。

この記事を書いた人
z_a_k_i

z_a_k_iと申します。

富山でITエンジニアとして働いています。
0歳児と3歳児を持つ30代メンズです。

このブログでは、以下の内容を紹介しています。

 ⚫︎アプリケーション開発
 ⚫︎富山県の情報発信

皆様に役立つ内容を紹介できるよう精進していきますので、
どうぞよろしくお願いします。

z_a_k_iをフォローする
アプリケーション開発

コメント