APIを使用した簡単なイントロ

典型的なAPI呼び出し

ウェブ開発業界の近くで仕事をしている場合、これら3つの悪名高い手紙を必ず聞いてください:A. P. I.

彼らは初心者と専門家によって同様に投げられます:

「API呼び出しを行う必要があるのはなぜですか?数字がありますか?」

「このサードパーティAPIへの単純な呼び出しが、ここでのトリックを実行します。」

「RESTful APIを構築します。新しいシステムが他のサービスと適切に連携するようにします。」

APIは最初は恐ろしく思えるかもしれませんが、開発者としてのあなたの人生を文字通り変えることができます。

どうして?さて、APIを適切に使用することを学ぶと、開発ワークフローを単純化、加速、および強化できます。 APIを構築または統合すると、クライアントと自分の両方にメリットがもたらされます。

開発者として、「車輪を再発明しないでください」というアドバイスをよく耳にします。

冗談はさておき、APIはあなたが車輪を再発明することなく重要な役割を果たします。 APIの基本を理解することは、現代のWeb開発者にとって重要なスキルです。この投稿では、あなたがまさにそうするのを手伝います。以下について説明します。

  • APIを使用する利点
  • APIとは
  • どんな種類のAPIがありますか
  • 実用的なユースケース

それに飛び込みましょうか?

APIを使用する理由

APIで開発スキルをレベルアップする

私のプログラミングキャリアにおける最初の大きなマイルストーンの1つは、APIを適切に理解することでした。私は今でも毎日それらを使用しています。

核心に踏み込む前に、最初に、APIを理解することはあなたの時間の価値があることを納得させてください。どうして?

APIの使用方法を学習すると、開発の効率が劇的に向上するためです。

まず、記述する必要のない既存のロジックを活用できます。自分でコーディングできないものもあります!開発者としての貴重な時間を節約するには、APIランドスケープがどのように見えるかを把握することが重要です。

第二に、あなたが遭遇する多くの開発上の問題は、あなたの前の誰かによってすでに解決されています。

これらの既存のソリューションには、FaaS、ライブラリ、Webサービス、SDK、コンテンツAPIがあります。彼らがどんな形をとっても、あなたは彼らと対話するためにAPIを必要とするでしょう。

APIとは何ですか?

Web API、MSの画像

公式の(困難な)定義は次のようになります。

コンピュータープログラミングでは、アプリケーションプログラミングインターフェイス(API)は、アプリケーションソフトウェアを構築するための一連のサブルーチン定義、プロトコル、およびツールです。一般的に、これはさまざまなソフトウェアコンポーネント間の明確に定義された通信方法のセットです。優れたAPIを使用すると、すべての構成要素を提供してコンピュータープログラムを簡単に開発できるようになり、それらの構成要素はプログラマーによってまとめられます。

少し重いですねアカデミックな散文を一段下げましょう。友好的な自家製のAPI定義を次に示します。

簡単に言えば、APIは、内部で何が起こるかを知る必要なく、そのロジックと対話するためのインターフェースを宣言します。この定義は、使用している言語、プロトコル、または環境に適用されます。唯一の要件は、プログラムレベルで発生することです。詳細は以下をご覧ください。

APIにさらに優れた光を当てるために、APIではないものをリストしましょう。

  • APIは必ずしも外部サービスではありません。たとえば、ソリューションにライブラリを直接含めることも、APIを介してライブラリを使用することもできます。
  • APIは単なるインターフェースではありません。それは仕様/フォーマットと実装の両方です。
  • APIはGUI(グラフィカルユーザーインターフェイス)ではありません。 APIは、グラフィカルレベルでの対話を行いません。プログラム層でのみ動作します。これは、プログラミング言語または通信プロトコルのいずれかを使用できます。

さまざまな種類のAPI

すべてのAPIが同等に作成されるわけではありません。

彼らはほとんど同じ目標を共有していますが、他の人よりもはるかに優れた目標を達成している人もいます。これはスムーズなイントロになるため、他のAPIよりもAPIが優れている理由については詳しく説明しません。

APIを作成する方法は人によってまったく異なることに注意してください。 Googleが「APIデザインパターン」と「APIパラダイム」を中心に興味を持っている場合、またはこの入門レベルのこの記事から始めてください。 :)

エンドポイント

APIの目標は、開発者としての生活を楽にすることです。彼らはどうやってそれをしますか?

一緒に設定された機能/機能を集約し、これらの機能をエンドポイントを通じて公開します。これらは通常、APIとの通信に使用されるURLパターンです。

これらのエンドポイントは、任意のAPIと対話できる唯一の方法です。各エンドポイントには、リクエストとレスポンスの両方に対して指定された形式があります。通常、この形式はAPIのドキュメントで定義されています。

エンドポイントは単純な機能にすることができます。または、他のAPIなどを呼び出す可能性のある多くの関数で構成できます。

ここで重要な点は、これらの関数の基礎となるロジックが完全に抽象化されていることです。それらを使用するために内部で何が起こっているかについての知識は必要ありません。

適切な形式を使用している限り、それらを使用できます。ここで、「消費する」とは、「それらの一部をアプリケーションに使用する」という凝った方法です。

一番下の行はこれです:APIはインターフェイスとまったく同じです。

比較として、電流がどのように機能するかを知っていても、ライトスイッチはライトをオンにします。 (若い大人の頃、電気料金を支払う必要があることも知りました...しかし、それは別の話です...)

APIの使用方法:実用的な例

理論を簡単な練習に交換しましょう。

APIドキュメントを読む

概念的な説明を過度に書きすぎたくありません。代わりに、本当に簡単なAPIを分析しましょう。実際のシナリオでどのように機能するかを見ていきます。これを行うには、ネイティブJavaScript Mathオブジェクトを使用します。ここでそのドキュメントを読むことができます。

ドキュメントでは、Mathオブジェクトの各関数が入力形式をどのように記述するかについて説明しています。たとえば、数値または数値の配列です。

ドキュメントには、出力の形式も記載されています。

これらの関数の実行に使用されるロジックについて何も言及されていないことに注意してください。

たとえば、ブラウザコンソールを起動してMath.sqrtと入力すると(関数を実行せずに)、次のように表示されます。

ƒsqrt(){[ネイティブコード]}

それがAPIの精神です。オペレーティングシステムのAPIの1つを呼び出しても、WebベースのAPIを呼び出しても、これらの原則は変わりません。

APIの使用例の基本的な例

人気のあるAPIプロバイダーでできることは山ほどあります。

Google Maps APIは、リアルタイムマッピングと交通信号に基づいたデータでより良いユーザーエクスペリエンスを構築するためによく使用されます。 Twitter APIを使用して、対象のツイートをリアルタイムでフィルタリングおよび表示できます。

今、私はあなたの多くが他の何よりもウェブベースのAPIに興味があると思う。それでは、特定のユースケースに飛び込みましょう。

例ではPostmanを使用します。このRest ClientはWeb環境にバインドされていますが、このようなツールは通常他の環境にも存在します。特定の環境で提供されているツールを試してみる前に、それらのツールを見てみる価値があります。これにより、多くの時間を節約できます。

従う場合は、Postmanクライアントをダウンロードする必要があります。

パブリックAPIを使用してデータを取得する

最初の例は非常に単純ですが、Mathの例よりもさらに興味深いものになります。

Dog APIを使用します!

面白いAPIであるだけでなく、認証も必要ありません。

さらに、これはHTTP REST APIです。これは、WebベースのAPIであることを意味します。この環境にバインドされているため、プロトコルの特定性に準拠する必要があります。

この場合、これはGET、PUT、POST、DELETEなどのHTTP動詞を使用することを意味します。

この例では、物事をシンプルに保ち、GET動詞のみを使用します。 APIはとにかく他のものをサポートしていません。ほとんどのパブリックAPIでは、データの消費のみが許可され、投稿はできません。

Postmanを起動して、UIの外観を見てみましょう。

私のUIはダークテーマを使用しているため、あなたのものとは若干異なる場合があります。

最初はここで多くの情報をダイジェストする必要があるので、VERBとURLから始めましょう。

デフォルトの動詞はGETである必要があります。その場合は、そのままにして、次のURLを入力できます:https://dog.ceo/api/breeds/list/all

「送信」を押して強打!適切なデータを含む応答を受信する必要があります。ほら!最初のAPI呼び出しを行いました。

さて、この例では、受信したデータを使用しません。しかし、あなたはアイデアを得る。ユーザーに異なる犬種を表示し、クリックすると特定の犬種の画像を表示できます。

ドキュメントのさまざまなルートを試して、環境に慣れることができます。

クールな事実:この小さなプロジェクトはオープンソースでもあるため、ここで内部を見ることができます。

プライベートAPIを使用した認証の処理

願わくば、APIに関してさまざまな要素がどのように連携するかをよりよく理解できるようになりました。認証を含むより複雑なチュートリアルをやってみましょう。ここでは、「自分の」アプリケーションのAPIの1つを使用します。

ここでは、コードを使用してSnipcartのAPIを操作します。 Postmanを閉じることができますが、手元に置いておいてください。 APIを使用して開始するときにこのようなツールを使用することをお勧めします。

目標は、シンプルなコマンドラインインターフェイス(CLI)ツールを作成して、買い物客の1回限りの使用割引を作成することです。これらの割引はAPIを介して生成されます。これらはすべて完全にコンピューター上で行われます。

このプロジェクトの新しいフォルダーを作成します。フォルダー内のnpm initを使用して、テキストエディターを起動します。

次に、index.jsファイルを作成し、package.jsonfileを開きます。その中で、最上位オブジェクトに次の行を追加します。

「bin」:{「割引」:「./index.js」}

また、クライアントからの入力を解析するには、司令官パッケージが必要です。現在のフォルダーでnpm install --save commanderを実行します。

また、小さなライブラリを使用してIDを作成します。 npm install --save shortidでインストールできます。

また、npm install --save request libも実行します。これにより、HTTP呼び出しが簡単になります。 index.jsファイルに戻り、次のコードを貼り付けます。

ここでリクエスト機能に焦点を当てましょう。

ここで、Snipcartへの外部API呼び出しを行います。メソッド「POST」をメソッドに渡すことがわかります。これは、SnipcartのAPIにデータをPOSTするためです。このメソッドを指定することにより、APIはアクションを正しくマップします。これにより、割引データがあるリクエストの本文を読み取ることができます。

まだ使用していないエキサイティングなAPI機能は認証です。

他の例はすべてパブリックAPIにあります。これらは認証を必要としません。

しかし、実際には、使用するほとんどのAPIはおそらく認証を必要とします。 APIの世界では標準的な「パターン」です。誰もが自分の店で割引を作成することを許可した場合、顧客は満足しません! ;)

この目的のために、リクエストでAPIキーを直接渡します。

Hooray —サーバーは私たちを認識します!その後、アカウントに限定されたリクエストを実行できます。

小さなアプリをテストする場合は、プロジェクトディレクトリでnpm install -gを実行できます。次に、割引xを実行して割引xを作成します。

Snipcartダッシュボード(テストモードでは永久に無料のアカウント)にアクセスして、割引が適切に作成されたことを確認できます。

これがどれほど強力か想像できます。これらの割引を200個作成する必要がある場合、UIを使用してこれを行うには時間がかかりすぎます。

APIがどのように機能するかを熟知していれば、ほんの数分でこれを実行できます。コードも再利用可能であるため、今から1か月後に同じことを行う必要がある場合は、既に設定済みです!

おわりに

この入門書が、APIの概要と、開発ワークフローでAPIを活用する方法を理解するのに役立つことを心から願っています。

いくつかのポイント:

  • APIは速度を加速し、開発範囲を広げます。それらを使用してください!
  • APIは必ずしもWebエコシステムにバインドされているわけではありません。どこでも見ることができます。
  • 使用するAPIのドキュメントを常に再確認してください。
  • コーディングを開始する前に、エコシステム内の既存のツール(APIなど)を常に検索してください。

最後の例は、実際には「本番」に対応していません。しかし、実際のユースケースで物事がどのように見えるかについての良いアイデアを提供します。

改善できたことはたくさんあります。例えば:

  • ユーザーに割引タイプを選択させる
  • また、作成したコードを単にログに記録するのではなく、同じ機能で直接メールで送信することもできます。
  • 割引ツールの高度なニーズがあれば、自分でAPIを作成することもできました。そこから、必要に応じてAPIとやり取りするUIを作成することもできます。とにかく、私はあなたが今アイデアを得ると思います! :)

それでは、次のステップは何ですか?開発分野のほとんどすべてのものと同様に、コーディング、コーディング、コーディング、さらにコーディングが必要です!これにより、APIの管理と統合に慣れることができます。

しばらくすると、彼らは効率的になります。

そして、そこから本当の楽しみが始まります。

この投稿を楽しんだ場合は、少し時間を割いてTwitterで共有してください。コメント、質問がありますか?以下のセクションをヒットしてください!

私はもともとこれをSnipcartブログで公開し、ニュースレターで共有しました。