初めまして、MDのバックエンドを担当している新人エンジニアの真下と申します!
MDに入社して早3ヶ月、段々と社内で開発中のWebアプリケーションの重要な機能開発を
任せていただけるようになってきました!
現在業務でAPIに触れることが多いので、今回の記事ではAPIの開発や検証に便利なツール、
Insomniaを紹介したいと思います。
API(Application Programming Interface)とは、あるコンピュータプログラム(ソフトウェア)の機能や管理するデータなどを、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約のこと。 IT用語辞典 e-Words
というのが定義ではありますが、Web開発におけるAPIとはHTTP/HTTPSベースのWebAPIを指すことが多いようです。
WebAPIとは、
Amazonの商品情報を自分のWebサイトで表示する
Twitterのつぶやき投稿を自分のページから行う
など特定のWebサービスの機能を簡単に他のWebページで使用できるような仕組みです。
RESTベースなAPIの動作確認に便利なAPIクライアント。
Insomnia | API Design Platform and REST Client
APIサーバにHTTPリクエストをGUIから簡単に投げられます。
よく比較されるAPI検証ツールとしてPostmanが挙げられますが、個人的にはInsomniaの方が
UIがシンプルで使いやすい気がします。(完全に好みです)
InsomniaにはInsomnia DesignerとInsomnia Coreの二種類がありますが、REST APIを扱う場合はInsomnia Coreを選びます。 Mac,Windows,Linuxででインストール可能ですが、今回はMac用のダウンロードリンクを掲載します。 https://insomnia.rest/download
基本的には、HTTPリクエストメゾッドを選択し、APIにリクエストを送るために必要なパラメータやクエリを選択して、
Sendを押すことでレスポンスを確認することができます。
今回はQiitaが提供するAPIを使用して、GETメゾッドでリクエストを送ってみます。
https://qiita.com/api/v2/schema?locale=ja
APIの利用制限などがあるため、気になる方はドキュメントを読みましょう。
Qiita API v2ドキュメント - Qiita:Developer
こちらがInsomniaの画面になります。 画面は主に3つのエリアに区切られており、
といったことが行えます。
今回のQiitaAPIへのGETメゾッドでのリクエストに対しては
このようにレスポンスとしてJSON形式のデータを取得することができます。
そしてこのツールの目玉機能として、Insomniaで設定したリクエストを、
主要なWeb開発で使用されているプログラミング言語のコードに変換してくれる機能があります。
大抵のプログラミング言語では、HTTPリクエスト用のライブラリが用意されているため、
実際のアプリケーション開発でこの自動生成されたコードをそのまま使用することはあまりないと思います。
しかし、APIを学習し始めた初学者がHTTPリクエストを送るためのコードの書き方や処理の流れを勉強したり、
学習したことのない新しい言語でのHTTPリクエストの書き方を学ぶといった場面で重宝すると思います。
それでは先ほどのGETメゾッドでのHTTPリクエストをコードに変換して、コマンドラインから実行してみましょう。
今回はRubyでコードを生成してみました。
# response.rb require 'uri' require 'net/http' require 'openssl' url = URI("https://qiita.com/api/v2/schema?locale=ja") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(url) response = http.request(request) puts response.read_body
しかし、上のコードはそのままコマンドライン上で実行するとAPIからのレスポンスが非常に見づらいため、
RubyのJSONモジュールを使って、出力を整形する以下のコードを追加しました。
# response.rb require 'uri' ~~~省略 #コメントアウトする // puts response.read_body # 追加コード response_body = JSON.parse(response.read_body) json_str = JSON.pretty_generate(response_body) puts json_str
モジュールについて知りたい方はこちらを参考にしてください。
Ruby 2.7.0 リファレンスマニュアル
実際に先程ののコードを実行してみた結果が以下になります。
確かにコードが実行されてレスポンスが確認できています。
いかがだったでしょうか?
APIについてまだよく分からない方でも非常に手軽に扱えるのではないでしょうか。
これを機にInsomniaを活用してAPIと仲良くなりましょう!
それでは今回はこの辺りで! Happy Coding!