PythonとJavaScriptを使用してAPIをテストする方法

PythonとJavaScriptを使用してAPIをテストする方法

これは、アプリケーションプログラミングインターフェイス(API)を選択することと、それを使用できるかどうかを決定することの間の細い線です。ほとんどのRESTAPIには汎用アーキテクチャがあり、共通のリクエストパスをスレッド化します。しかし、そこにあるいくつかのAPIは標準から逸脱しています。その結果、それらは使いにくくなります。

したがって、APIでソフトウェア全体を構築する前に、品質チェックを実行して、正常に機能していることを確認する必要があります。では、APIテストとは何ですか?APIをどのようにテストできますか?

APIテストとは何ですか?

APIテストでは、APIの機能、セキュリティ、スケーラビリティ、速度などを初期評価して、APIを使用するプログラムに最適かどうかを確認します。ただし、表面的には、さまざまなエンドポイントを介して要求を行ったときに適切な応答を送信するかどうかを確認するためのテストが必要になる場合があります。

その構造に応じて、APIのテスト中に、関連するエンドポイントにリクエスト(Get、Post、Update、またはDelete)を行います。APIテスト中にチェックする多くのメトリックがあります。ただし、初心者レベルでは、ステータスコードからAPIの整合性を検証し、正しいデータをフェッチして受け入れることを確認する必要があります。

そのために、他のWebリクエストと同様に、APIは200、400、500のステータスコードなどを返す場合があります。

ほとんどのAPIは、JSON応答を使用してペイロードを提供します。目標に応じて、他の人はXML、マルチパート、またはHTMLペイロードを受け入れて応答する場合があります。

PythonとJavaScriptを使用してAPIをテストする方法

インターネット上には多くのグラフィカルユーザーインターフェイス(GUI)APIテストツールがありますが、記述されたスクリプトを使用してAPIをより批判的に評価できます。

APIは、ドキュメントで許可するリクエストの種類を通知し、関連するエンドポイントを提供します。したがって、適切なリクエストメソッドを使用してそれらを取得してテストできます。

関連:REST APIとは何ですか?アプリやウェブサイトのデータを取得するにはどうすればよいですか?

実際の本番フェーズとは異なり、APIテストは大雑把です。そのため、本番用のAPIを実行するときほど具体性は必要ありません。APIテストにはさまざまな種類がありますが、この記事では応答検証テストに焦点を当てます。

このチュートリアルでは、JavaScriptのフェッチライブラリとPythonのリクエストライブラリを使用して、偽のストアAPIをテストします。これを行いながら、データの取得、投稿、更新、削除のエンドポイントをテストします。

JavaScriptを使用してGetAPIエンドポイントをテストする方法

本番環境で使用するのと同じように、Axiosまたはfetchメソッドのいずれかを使用してJavaScriptでAPIをテストできます。

fetchを使用してAPIから応答ステータスを取得するには

fetch('https://fakestoreapi.com/products', ).then(res =>{ console.log(res) })

上記のリクエストは、有効なレスポンスの場合、200ステータスを返します。リクエストが成功すると、APIからリアルタイムデータをリクエストできます。

このAPIからデータを取得しましょう:

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ console.log(response) }).catch(err => console.log(err))

上記のフェッチコードへの応答は次のようになります。

PythonとJavaScriptを使用してAPIをテストする方法

たとえば、すべての製品の価格を取得するには、マップ関数を使用できます。

fetch('https://fakestoreapi.com/products', ).then(res =>{ if (res.ok){ return res.json() } }).then(response=>{ response.map(data =>{ console.log(data.price) }) // console.log(response) }).catch(err => console.log(err))

上記は、次の出力をログに記録します。

PythonとJavaScriptを使用してAPIをテストする方法

PythonでGetEndpointをテストする

前述のように、Pythonはリクエストライブラリを使用してAPIのデータにアクセスします。

この場合の応答のステータスを確認するには、次のようにします。

import requests data = requests.get('https://fakestoreapi.com/products') print(data.status_code)

上記のようにデータをログに記録すると、対応するステータスが返されます。ただし、この場合は200です。

それでは、JavaScriptを使用しているときに行ったのと同じデータをPythonで取得しましょう。

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() print(myData)

上記の結果は次のようになります。

PythonとJavaScriptを使用してAPIをテストする方法

forループを使用して特定のデータ取得できます

たとえば、製品の価格を取得するには、次のようにします。

import requests data = requests.get('https://fakestoreapi.com/products') myData = data.json() indexes = 0 for i in myData: goods = myData[indexes] indexes +=1 print(goods["price"])

出力は次のようになります。

PythonとJavaScriptを使用してAPIをテストする方法

JavaScriptを使用したポストエンドポイントのテスト

Getリクエストが機能することをテストして確認した後、目的とAPIが提供するものに応じて、データを挿入できるかどうかも確認することをお勧めします。

Getリクエストの作成方法とは対照的に、Postリクエストはペイロードを受け入れます。さらに、それがPostリクエストであることを指定する必要があります。

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products', { method: "Post", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload to JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

上記のコードは、応答ステータスコードと、実行時に挿入された新しい情報をログに記録します。これにより、リクエストが通過したかどうかがわかります。通常、ステータスコードが200の場合、APIには適切な応答を返す有効なエンドポイントがあります。

Pythonを使用したPOSTリクエストのテスト

Pythonのrequests.postを使用して、APIのポストエンドポイントをテストすることもできます。JavaScriptのフェッチを使用しているときに行ったように、ここでもペイロードを指定する必要があります。

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.post('https://fakestoreapi.com/products', data = payload ) print(Posted.status_code) print(Posted.json())

JavaScriptと同様に、上記のPythonコードも、応答ステータスコードとペイロード内で指定された新しいデータをログに記録します。

プットエンドポイントのテスト

APIデータの更新は、両方の言語で投稿して取得するのと同じプロセスを実行します。

JavaScriptのフェッチを使用してこれを行うには、PostPutに置き換えるだけです。

// Specify the payload let payload = { title: 'new product', price: 13.5, description: 'test description', image: '', category: 'electronic' } fetch('https://fakestoreapi.com/products/19', { method: "Put", headers:{ 'Content-Type': 'application/json' }, body: JSON.stringify(payload) //convert the payload into JSON } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

APIエンドポイントに注目すると、今回は製品IDが含まれていることがわかります。これは、この場合に更新するデータをAPIが認識する方法です。

それでも、一部のAPIは、他のメソッドを使用してエンドポイントを作成する場合があります。したがって、それは標準ではありません。

Pythonを使用してAPIデータの更新をテストするには、代わりにrequests.putを使用します

import requests payload = { 'title': 'new product', 'price': 13.5, 'description': 'test description', 'image': '', 'category': 'electronic' } Posted = requests.put('https://fakestoreapi.com/products/19', data = payload ) print(Posted.status_code) print(Posted.json())

上記の例は、成功した場合、APIエンドポイントによって示されるように位置19に新しいデータを挿入します。

削除リクエストのテスト

APIからデータを削除するのは、Getリクエストを作成するのと同じくらい簡単です。これは、PostやPutとは異なり、ペイロードを指定する必要がないためです。必要なのは削除エンドポイントだけです。

ここで選択したAPIは、製品IDを使用してデータを追跡します。したがって、製品の削除は簡単です。

fetch('https://fakestoreapi.com/products/19', { method: "Delete", headers:{ 'Content-Type': 'application/json' } } ).then(res =>{ if (res.ok){ console.log(res.status) return res.json() } }).then(response => { console.log(response) }).catch(err => console.log(err))

Pythonを使用して同じことを実現するには、数行のコードのみが必要です。

import requests Posted = requests.delete('https://fakestoreapi.com/products/19', ) print(Posted.status_code) print(Posted.json())

上記の両方の例は、クエリされたID(この場合は19)に属する応答ステータスコードとデータをログに記録します。

これらのテスト方法は一般的ですか?

この投稿では単一のAPIにのみ焦点を当てていますが、CRUDエンドポイントのテストに使用される方法は、他のAPIを扱う場合でも違いはありません。もちろん、唯一の違いは、各API構造を取り巻くルールとデータを要求するためのガイドラインにある可能性があります。選択したAPIについてこれらを解読したら、ここで説明する適切な方法を使用して、対応するエンドポイントをテストできます。

したがって、すべてのAPIには接続するためのルールがあるため、テスト中に、リクエストヘッダーに含める追加のパラメーターを提供するものもあります。このようなパラメータには通常、ドキュメントに記載されているアクセストークンなどが含まれます。


国際プログラマーの日とは何ですか?今年を祝う3つの方法

国際プログラマーの日とは何ですか?今年を祝う3つの方法

国際的なお祝いの日は、社会的問題、歴史的な日、およびそれぞれのキャリアを認識するための良い方法です。国際プログラマーの日は、プログラマーが日常生活を改善するために果たす役割を祝います。私たちが住んでいる文明の世界は、プログラマーの努力の賜物です。

GitHubコパイロット:コーディングAI

GitHubコパイロット:コーディングAI

あなたがプログラマーなら、長いプログラムを書くことに疲れ果ててしまう可能性が十分にあります(またはあなたはそうするでしょう!)そしておそらくあなたは自分自身に疑問に思ったことでしょう。

Gitで新しいブランチを作成する方法

Gitで新しいブランチを作成する方法

ブランチは、プログラミング、特にGitのバージョン管理の概念の中心です。このスターター記事では、ブランチとは何か、およびさまざまなツールを使用してブランチを作成する方法について説明します。

UbuntuにNpmとNode.jsをインストールする方法を学ぶ

UbuntuにNpmとNode.jsをインストールする方法を学ぶ

Node.jsは、事実上、オープンソースのクロスプラットフォームJavaScriptランタイム環境です。Node.jsを有効にすると、ブラウザーを開くことを心配することなく、UbuntuマシンでJavaScriptを実行できます。ChromeのV8JavaScriptエンジン上に構築されており、Linuxにさまざまな方法でインストールできます。

Pythonsカレンダーモジュールの使用方法

Pythonsカレンダーモジュールの使用方法

Pythonには、特定の日または月のコードを操作できる組み込みのカレンダーモジュールが用意されています。たとえば、これを使用して、1年のすべての暦月の文字列を出力できます。

9つの最高のオンラインAPIテストツール

9つの最高のオンラインAPIテストツール

API機能のテスト、実行時の動作の評価、セキュリティの検証など、自動化されたAPIテストツールを使用すると、退屈なコードを記述せずに技術を操作できます。プログラマーではないが、プログラミングチームに推奨する前にAPIをテストしたい場合でも、これらは便利です。

Visual Studio 2022と2019:今すぐアップグレードする必要がありますか?説明

Visual Studio 2022と2019:今すぐアップグレードする必要がありますか?説明

今年の初めに、マイクロソフトはVisual Studio2022のプレビューバージョンをワイルドプログラミングの世界にリリースしました。これは良い知らせです!これは非常に人気のあるIDEですが、それが繁栄するDevOpsエコシステムの変化のペースを考えると、調整またはおそらくオーバーホールが必要です。

最初のASP.NETWebアプリケーション:開始方法

最初のASP.NETWebアプリケーション:開始方法

ASP.NETは、Webアプリとサービスを構築するためのMicrosoftの無料のクロスプラットフォームフレームワークです。ASP.NETプラットフォームは、さまざまなアプリケーションの構築に使用されるツール、プログラミング言語、およびライブラリの開発者プラットフォームである.NETの拡張機能です。

JavaScriptのイテレータとジェネレータの概要

JavaScriptのイテレータとジェネレータの概要

2015年以来、EcmaScript6(ES6)はJavaScriptコーディングの実践に多くの進歩をもたらしました。多くの最新の概念がJavaScriptに導入され、コーディングエクスペリエンスが大幅に向上しました。この記事では、JavaScriptのイテレーターとジェネレーターについて学習します。

WordPressの投稿にツイートを埋め込む方法

WordPressの投稿にツイートを埋め込む方法

WordPressの投稿にサードパーティのサービスを埋め込むことは、訪問者の興味を引くための刺激的な方法です。埋め込まれたコンテンツは、スキャンを容易にする視覚的な手がかりも提供します。WordPressにより、このタイプのコンテンツを簡単に追加できるようになりました。

SQLとNoSQL:次のプロジェクトに最適なデータベースは何ですか?

SQLとNoSQL:次のプロジェクトに最適なデータベースは何ですか?

SQLとNoSQL:次のプロジェクトに最適なデータベースは何ですか?

PythonをWindowsのPATH変数に追加する方法

PythonをWindowsのPATH変数に追加する方法

ターミナルからPythonを実行することは避けられないことがよくあります。ただし、PythonをWindows 10に初めてインストールした場合、Windowsターミナルを介して実行できるのは、PythonがWindowsPATH環境変数に追加されている場合のみです。

Pythonをコマンドライン計算機として使用する方法

Pythonをコマンドライン計算機として使用する方法

コンピューターでグラフ電卓を使用できますが、Pythonプログラミング言語インタープリターは卓上電卓を兼ねることができます。公式チュートリアルで言及されているほど、Pythonコミュニティで人気のあるランニングジョークです。Pythonを電卓として使用する方法は次のとおりです。

MongoDBでデータベースとコレクションを作成する方法

MongoDBでデータベースとコレクションを作成する方法

SQLデータベースエンジンはデータをテーブルに編成しますが、MongoDBはそのデータをコレクションに格納します。ただし、従来のエンジンと同様に、データベースという用語を使用して、組織の最高レベルを指します。

レスポンシブウェブデザインの原則

レスポンシブウェブデザインの原則

今日では、ブラウザやデバイスに応じてユーザーインターフェイスを調整するウェブサイトやアプリを作成するのが一般的です。この目標を達成するには、2つのアプローチがあります。1つ目は、デバイスごとに異なるバージョンのWebサイトまたはアプリを作成することです。しかし、それは非効率的であり、予測できないエラーにつながる可能性があります。

npkillを使用してノードモジュールフォルダを削除する方法

npkillを使用してノードモジュールフォルダを削除する方法

Node.jsは、Webブラウザーの外部でJavaScriptを実行できるJavaScriptランタイム環境であり、あらゆる種類のアプリケーションを開発するための一般的な選択肢となっています。その人気の一部は、開発者のエクスペリエンスを容易にするためにそこにある多数のNPMパッケージによるものです。

例で説明されたCSSボックスモデル

例で説明されたCSSボックスモデル

すばらしいWebページのレイアウトを作成する場合は、余白、境界線、パディング、およびコンテンツについて知っておく必要があります。画像であろうとテキストであろうと、Webデザインのすべての要素は、これらのプロパティを持つボックスを使用します。ボックスモデルをいじって、複雑なレイアウトを簡単に作成できます。この記事では、CSSボックスモデルを分析し、これらのプロパティの使用方法を実際の例とともに示します。

HerokuでPythonWebサイトを無料でホストする方法

HerokuでPythonWebサイトを無料でホストする方法

つまり、Pythonを使用して単純なポートフォリオWebサイトを完成させたところですが、無料のホスティングを使用してそれを立ち上げたいと考えています。Herokusの無料ホスティングについて聞いたことがありますが、関連する技術を完全には理解していません。

Python String format()メソッドはどのように機能しますか?10例

Python String format()メソッドはどのように機能しますか?10例

データベースクエリであろうと数学演算の結果であろうと、Python文字列形式の方法は、結果をユーザーに提示するためのより動的で魅力的な方法を提供します。

国際プログラマーの日とは何ですか?今年を祝う3つの方法

国際プログラマーの日とは何ですか?今年を祝う3つの方法

国際的なお祝いの日は、社会的問題、歴史的な日、およびそれぞれのキャリアを認識するための良い方法です。国際プログラマーの日は、プログラマーが日常生活を改善するために果たす役割を祝います。私たちが住んでいる文明の世界は、プログラマーの努力の賜物です。

GitHubコパイロット:コーディングAI

GitHubコパイロット:コーディングAI

あなたがプログラマーなら、長いプログラムを書くことに疲れ果ててしまう可能性が十分にあります(またはあなたはそうするでしょう!)そしておそらくあなたは自分自身に疑問に思ったことでしょう。

Gitで新しいブランチを作成する方法

Gitで新しいブランチを作成する方法

ブランチは、プログラミング、特にGitのバージョン管理の概念の中心です。このスターター記事では、ブランチとは何か、およびさまざまなツールを使用してブランチを作成する方法について説明します。

UbuntuにNpmとNode.jsをインストールする方法を学ぶ

UbuntuにNpmとNode.jsをインストールする方法を学ぶ

Node.jsは、事実上、オープンソースのクロスプラットフォームJavaScriptランタイム環境です。Node.jsを有効にすると、ブラウザーを開くことを心配することなく、UbuntuマシンでJavaScriptを実行できます。ChromeのV8JavaScriptエンジン上に構築されており、Linuxにさまざまな方法でインストールできます。

Pythonsカレンダーモジュールの使用方法

Pythonsカレンダーモジュールの使用方法

Pythonには、特定の日または月のコードを操作できる組み込みのカレンダーモジュールが用意されています。たとえば、これを使用して、1年のすべての暦月の文字列を出力できます。

9つの最高のオンラインAPIテストツール

9つの最高のオンラインAPIテストツール

API機能のテスト、実行時の動作の評価、セキュリティの検証など、自動化されたAPIテストツールを使用すると、退屈なコードを記述せずに技術を操作できます。プログラマーではないが、プログラミングチームに推奨する前にAPIをテストしたい場合でも、これらは便利です。

Visual Studio 2022と2019:今すぐアップグレードする必要がありますか?説明

Visual Studio 2022と2019:今すぐアップグレードする必要がありますか?説明

今年の初めに、マイクロソフトはVisual Studio2022のプレビューバージョンをワイルドプログラミングの世界にリリースしました。これは良い知らせです!これは非常に人気のあるIDEですが、それが繁栄するDevOpsエコシステムの変化のペースを考えると、調整またはおそらくオーバーホールが必要です。

最初のASP.NETWebアプリケーション:開始方法

最初のASP.NETWebアプリケーション:開始方法

ASP.NETは、Webアプリとサービスを構築するためのMicrosoftの無料のクロスプラットフォームフレームワークです。ASP.NETプラットフォームは、さまざまなアプリケーションの構築に使用されるツール、プログラミング言語、およびライブラリの開発者プラットフォームである.NETの拡張機能です。

JavaScriptのイテレータとジェネレータの概要

JavaScriptのイテレータとジェネレータの概要

2015年以来、EcmaScript6(ES6)はJavaScriptコーディングの実践に多くの進歩をもたらしました。多くの最新の概念がJavaScriptに導入され、コーディングエクスペリエンスが大幅に向上しました。この記事では、JavaScriptのイテレーターとジェネレーターについて学習します。

WordPressの投稿にツイートを埋め込む方法

WordPressの投稿にツイートを埋め込む方法

WordPressの投稿にサードパーティのサービスを埋め込むことは、訪問者の興味を引くための刺激的な方法です。埋め込まれたコンテンツは、スキャンを容易にする視覚的な手がかりも提供します。WordPressにより、このタイプのコンテンツを簡単に追加できるようになりました。