APIの構築方法

2022年6月30日

APIとは

APIとは何で、API構築の成功のためのガイドラインとは何でしょうか。アプリケーション・プログラミング・インターフェース(API)は、外部アプリケーションがプラットフォーム、オペレーティング・システム、アプリケーション、サービスの機能やデータにアクセスし、やりとりできるようにするプログラミング機能、ツール、プロトコルのセットです。効果的なAPIは、より大きなデータ共有とコラボレーションの道を切り開き、さまざまなソフトウェアが互いに通信してビジネス機能を提供できるエコシステムを構築します。APIは、最新のアプリケーションやクラウドネイティブなマイクロサービスベースのアーキテクチャの中核となるコンポーネントです。APIは、異なるサービスが相互に通信し、最新のエクスペリエンスを提供するための主要なチャネルを作り出します。

成功するAPIを設計、開発、配布するには、さまざまなベストプラクティスの活用が必要です。これらのベストプラクティスを順守することで、開発者やアプリケーションによるセキュアなアクセスと容易な利用が保証されます。ベストプラクティスとしては、以下が挙げられます。

  • さまざまなスキルセットや経験を持つ開発者がAPIを使用できるようにするシンプルでエレガントな設計
  • 必要に応じてデータ・アクセスを制限する高レベルのセキュリティ
  • APIへのアクセスがソースや外部アプリケーションを停滞させないようにするリーン・デザイン方式。
  • 既存APIのガバナンス、セキュリティ、使用状況のモニタリングを徹底する関連サービス

APIを最初から開発する方法

APIの構築は、ソースとそのソースとインターフェースする外部アプリケーションの両方に関する特定の要因により大きく異なります。API開発プロセスを計画する際に確認すべき事項を以下に示します。

目標は何か
このようなプロジェクトは、常に全体像、つまり目標の定義と理解が最適なスタート地点となります。APIの目的はこのプロジェクトの指針です。APIを通じてやり取りされる情報とはどのようなものでしょうか。それはどのように使用または表示されるのでしょうか。考慮すべき他の要素には、アプリケーションのターゲット・オーディエンスとそのニーズを理解することが含まれます。

制限は何か。
プロジェクト目標の裏側には、プロジェクトの制限があります。開発に実用的な視点を取り入れることは必要なステップであり、自社のリソースとスケジュールの制限についてよく理解しておく必要があります。考慮すべきその他の要素:セキュリティに関する懸念、ハードウェア・リソースへの影響、スケーラビリティが懸念される場合のパフォーマンス要求など、技術的な制限事項を考慮する必要があります。

自社のアーキテクチャとは
最初からAPIを設計する場合、開発者には数多くの出発点の選択肢があります。Python、Java、JavaScript、C#、その他の言語はすべてAPIを開発する上で有効な選択肢です。設計上の考慮事項に組み込むその他の要素には、ユーザビリティスケーラビリティ(リソースニ・ーズへの対応)、セキュリティなどがあります。APIはアプリケーション間の架け橋として機能するため、最後の要素は特に重要です。そのためには、双方のデータが適切に保護されている必要があります。またセキュリティの脆弱性を持つAPIは、コード・インジェクションやデータ流出のような悪用の開放性があります。

これらの大局的な質問によって、ガイドラインが定義され、開発者はAPIを最初から構築するプロセスを詳細に検討することができます。

SOAP APIとREST APIの比較

APIを設計する際の重要な意思決定の1つは、アプリケーションがWebサービスにアクセスする仕組みです。シンプルなソフトウェア・アーキテクチャ・スタイルのオブジェクト・アクセス・プロトコル(SOAP)と表現的状態遷移(REST)は、どちらもAPIを設計するための効果的な経路となります。どちらも長所と短所を提供し、プロジェクトに最適なものは状況や使用状況によって異なります。通常、WebサービスはSOAPかRESTのどちらかをサポートするので、APIのためのWebサービスを決定することは、SOAPとRESTのどちらがあなたの目標に適しているかによって決まる可能性が大いにあります。

SOAPとは
SOAPは、Microsoftが設計したXMLベースのプロトコルです。一連のルールを中心に構築されたSOAPは、多くの拡張(WS-coordinationとWS-security)、自動化、組み込みのエラー処理をセキュアにサポートしたメッセージングにおける標準を作成します。SOAPは分散環境で最適ですが、XML構造に依存しているため、コードが過度に複雑になる可能性があります。

RESTとは
RESTは、ポイントツーポイント・レベルで運用されるSOAPに代わる、よりシンプルで軽量なものとして開発されました。効率的なスケーラビリティのために特別に構築されたソフトウエア・アーキテクチャのスタイルとして、RESTは柔軟性を提供しながら処理を最小限に抑える一連の標準化された制約を提供します。RESTの迅速な応答は、JSONやCSVなど、アプリケーションで使用しているさまざまな出力メッセージ形式にわたり、レイテンシを最小限に抑えます。

APIにRESTとSOAPのどちらを使用すべきか
アプリケーションに最適な標準はどちらでしょうか。それはお客様のニーズによって異なります。共有メディアやデータベースクエリからの出力など、アプリケーションがシンプルでユーザー向けのメッセージを有効にするほとんどのケースでは、REST APIが最適です。SOAPは、学習と使用曲線が急ですが、この固有の複雑さにより、セキュアな支払のような、より複雑なトランザクションを処理することができます。

API設計ツールの選択

API構築のコツは、開発チームが選択するツールによって異なります。Oracle Cloud Infrastructure(OCI)のAPIソリューションを使用すると、OpenAPI仕様に基づいて、迅速なプロトタイプ作成と検証を可能にする完全なツールキットでAPIを簡単に設計および開発できます。OCIでは、ユーザーはAPI BlueprintまたはSwaggerのいずれかにアクセスし、APIを設計することができます。また、APIは最初から構築することも、テンプレートから構築することもでき、開発プロセスを加速することができます。

OCIのAPI開発プロセスについて詳しく見ていきましょう。この例では、OCIコンソールを使用してAPIリソース(オプションで、アップロードされたAPI説明ファイルから作成されたAPI説明付き)を作成します。無料のOCIアカウントにサインアップして、手順を実行します。

  1. この例では、OCIコンソールを使用してAPIリソース(オプションで、アップロードされたAPI説明ファイルから作成されたAPIの説明付き)を作成します。「API管理」で、「ゲートウェイ」をクリックします。
  2. 「API」ページで、「APIリソースの作成」をクリックし、その名前を指定します。API Description File(サポートされている言語によるAPIの説明を含む)、およびタグをアップロードします。
  3. 「作成」をクリックして、新しいAPIリソースを作成します。
  4. バックエンド・コードを記述します。お好みのプログラミング言語とフレームワークを使用して、APIを実行するバックエンドコードを作成します。これは、他のコラボレーションを含む反復的なプロセスになる可能性があります。
  5. バックエンド・コードをテストします。オラクルのAPI開発サービスには、ローカルで、またはさまざまな継続的インテグレーション(CI)サービスを通じてテストするためのさまざまなツールが含まれています。
  6. 導入します。APIを立ち上げ、開発者エコシステム、パートナー、顧客、社内開発者がアクセスできるようにします。Oracle API Gatewayは、API接続の使用状況のモニタリングおよび管理、セキュリティ、およびガバナンスを実現します。

オラクルのクラウドベースAPIソリューションを使用しているAPI開発の詳細については、オラクルAPI開発者ガイド(PDF)をご覧ください。

APIテストのベストプラクティス

APIの徹底的なテストは、スムーズな立ち上げと継続的な運用を保証するための重要なステップです。ビジネス・ニーズを満たすAPIの導入を支援するために、従うべき効果的なAPIのベストプラクティスを抜粋してご紹介します。

  • APIのスモークテスト(APIの基本機能が動作していることを検証する最低限のテスト)を使用してコードを検証します。スモークテストでは、繰り返し発生する可能性のあるエラーをチェックする必要があります。
  • 本番環境と同様の条件下で、実際のデータを用います。実際のユースケースを反映していないデータで作業しても、さまざまなシナリオのトラブルシューティングが長引くのみで、信頼性の低いテストが生成される可能性があります。したがって、テストの際には、実際のシナリオをできるだけ忠実に再現する必要があります。
  • ポジティブ・テストとネガティブ・テストの両方を実施します。テストには予想される結果と使用シナリオの全領域が必要であるため、開発者は計画の一部として、ポジティブ・テスト(予想される機能的な結果)とネガティブ・テスト(予期せぬ結果をもたらす予定されたエラー)の両方を考慮する必要があります。
  • 透明性の高い結果を得るためにAPIレスポンスの包括的な追跡を使用します。テストは長く骨の折れるプロセスです。大量のテスト結果が存在する場合、テスト結果を捨て去る衝動に駆られることは自然なことです。 しかし、このデータを熱心に記録することで、機能、行動、テスト結果、効果を明確に記録することができます。
  • セキュリティとパフォーマンスの両方をチェックします。機能が重要であることは言うまでもありませんが、テストが機能することが証明されたら、セキュリティ(データとアクセスのリスク)とパフォーマンス(リソースの使用状況、スケーリング、効率的な処理)をチェックすることも同様に重要です。

APIの構築とテストの準備はできていますか。Oracle Cloud Infrastructure API管理サービスを無料でお試しいただき、完全なAPIライフサイクル管理ソリューションをご体験ください。