Go言語でterminalAPIを作ろう!

こんにちは。

Go言語って、書いていてとても楽しい言語ですよね?

今日は、terminalAPIを作成しようと思います。

諸注意

本サンプルは、MacOS環境で動かしています。

概要

例えば、以下のコマンドをterminal上で打ち込むとGo言語のバージョンが出力されます。

このコマンドをリモート上のサーバーで実行したい場合は、SSHログインか何かしてリモートサーバー上にログインし、コマンドを実行しなければなりません。

そこで、ローカルから情報を取得できるAPIを自作して、リモートサーバーへのログインなしで、情報を取得できるようにします!

Go version取得API

まずは、簡単にGo Versionを取得できるAPIを作成してみましょう。

次のモジュールをインストールしてください。

このモジュールは、簡単にhttp routerを作成することができるモジュールです。

また、次のファイルを任意の場所に作成してください。

実装例は以下に記述します。

main関数では、localhost:8000でAPIサーバーにアクセスできるように処理を設定しています。

サーバーを立ち上げたら「curl -X GET http://localhost:8000/api/v1/go-version」を実行するとGo Versionが取得できる仕組みです。

getCommandOutput関数では、terminal上で取得したコマンドを渡してあげます。ここでは、「/usr/local/go/bin/go」と「version」ですね。

goVersion関数は、API URLにアクセスした時に実行される関数として定義しています。

本来ならリモートサーバーに設置したところですが、ローカルで動作確認してみましょう。

次に、terminal上からCurlを実行します。

これは、使えますね!

今までは、リモートサーバーにログインしないと取得できない情報をローカル上で取得できるようになります。

ログ情報取得 API

もう少し、実践的な使い方をみていきましょう。

例えば、「リモートサーバー上のログを取得したい」などの要求に答えてみることにしましょう。

先ほどのプログラムを少し改造します。

main.goファイルと同階層に、ログファイルを作成しましょう。

それでは、プログラムを実行してみましょう。

うん。これは便利そうですね!

終わりに

Go言語の便利な活用方法がまた一つ明らかになりました^^

Go言語でガンガンツールを作りまくって、業務改善しましょう!

それでは、また!!

コメントを残す