この記事では、ソフトウェア間の相互作用の最高の技術について話し、ソフトウェアを作成するための最も一般的な言語でテストします。Java REST APIとは何ですか?これは難しい質問なので、いくつかの部分に分割します。
Javaは、世界で最も人気のあるプログラミング言語の一つです。 TIOBEランキング(人気指数で言語を注文する)によると、実際には最も人気があります。 それには多くの理由がありますが、私たちはJavaが広く普及しており、デプロイが簡単で、”一度だけ書く、どこでも実行する”魔法のツールボックスを持ってい
代わりにAPIを構築しようとしていますか? JavaでAPIを作成する方法をチェックしてください
- さて、しかし、正確にはAPIは何ですか?
- このインターフェイスはどのように機能しますか?まず第一に、APIには、対話するメインアドレスであるhost-URL(またはベースURL)が必要です。
- API要求の種類
- 前提条件
- 概要
- JavaでApiの使用を開始する方法
- RapidAPIにサインアップ
- APIを探す
- APIを購読
- エンドポイントのテスト
- APIを使用してデータを取得します
- JSON応答を取得
- 例:Javaを使用する&他のタイプのデータを表示するApi
- 結論
- faq
- javaでapiを作成するにはどうすればよいですか?APIを作成する方法については、次のJava APIチュートリアルを参照してください。
- JavaはAPIですか?
さて、しかし、正確にはAPIは何ですか?
まあ、APIはApplication Programming Interfaceの略です。要するに、それはソフトウェア間の相互作用を制御する一連のルールです(つまり、タスクを受け取るオブジェクトと、このタスクを与えるオブジェク Apiを使用すると、サードサイドのソフトウェアのソースコードに深く潜ることをスキップしながら、その特権を迅速かつ簡単に使用することができます。
このインターフェイスはどのように機能しますか?まず第一に、APIには、対話するメインアドレスであるhost-URL(またはベースURL)が必要です。
また、Apiには事前定義されたエンドポイントのセットがあります–host-URL内の一意のアドレスで、その機能を担当します。 さらに、Apiには、すべてのエンドポイント、戻り値の型などを説明するドキュメントが必要です。
興味深いAPIを見つけてドキュメントを読んだら、サーバー(受信側)の単一のタスクであるリクエストを送信する必要があります。比喩的に、それは2人の間の会話のようなものです:誰か(あなた)が質問(要求)をし、対話者(エンドポイント)が回答(応答)します。
比喩的に、それは2人の間の
API要求の種類
APIが処理できる要求にはさまざまな種類がありますが、最も使用されるものは次のとおりです。
- GET–サーバーからデータを返します。 ところで、最も人気のある要求。
- サーバーに新しいデータをポスト追加します。 多くの場合、このタイプはファイルの登録やアップロードに使用されます。
- PUT/PATCH–updatesデータ、便利な要求が、そう求められていません。
- DELETE–サーバーからデータを削除します。さて、「Java REST API」の最初と最後の単語の意味がわかりました。しかし、RESTの意味は何ですか?
これは、クライアントが表現のために適切な状態で必要なデータを取得するのに役立つソフトウェア通信のスタイルです(REST-representational state transfer)。したがって、REST APIと言うとき、要求されたデータを返すだけでなく、さらなる作業のためにそれを準備するApiを意味します。しかし、どのようにしてRESTful APIを作成できますか? すべてのことが必要です–アーキテクチャ上の制約の束:
- クライアントサーバーアーキテクチャ-両側に明確な分離。 クライアントは要求を送信し、応答を待機します。 この制約の主な理由–一方の側は、対話の正しい形式以外は何も気にしません(サーバーが要求をどのように実行するかは問題ではなく、その逆も同様です)。
- Statelessness–以前のすべての要求と将来のすべての要求からの各単一要求の独立性。 たとえば、”Charlieの姓は何ですか?”、その後、フォローアップ”彼は何歳ですか?”、サーバーは後者に答えることができません。 サーバーはクライアントからの情報を保存せず、各要求でそれを必要とします。
- キャッシュ可能性–サーバーの代わりに、クライアントはローカルストレージ(キャッシュ)にデータを保存することができます(さらにはすべきです)。 これは、要求の数が少なくなる限り、生産性を向上させます。
- 階層化されたシステム–サーバーは、プロセスのさまざまな部分のレイヤーを含める必要があります。 これは、レイヤーがお互いについて何も知らず、サーバーを新しいレイヤー(セキュリティなど)で簡単にスケーリングできるため便利です。
- Uniform interface–各エンドポイントは一意のアドレスでなければなりません。 シンプルで便利で、必要です。これで、Java RESTful Apiに関するすべての情報が得られたので、試してみましょう!
前提条件
まず、マシンにJavaがインストールされている必要があります。また、site-packagesを簡単にインストールして使用するためのMaven package builderが必要です。 それ以外は、問題なく数行でリクエストを行うためのUnirestライブラリのみが必要です。
ここでは、標準モジュールによって要求を行うコードの例を見ることができます。
かなり難しいように見えますよね? 特に、戻り値の型としてのInputStream(さらに処理する必要があります)。Unirestと同じ例を見てみましょう:
出来上がり! 期待されるタイプの応答を割り当てて、すぐに作業することができます。Mavenの助けを借りてUnirestを使用し、Java Mavenプロジェクトを作成してpomを見つけることができます。xmlファイル-プロジェクトのすべての依存関係とツールが表示されます。 XMLコードの次の部分を
<dependencies>
タグに挿入します。<dependency> <groupId>com.mashape.unirest</groupId> <artifactId>unirest-java</artifactId> <version>1.4.9</version></dependency>
依存関係に関する詳細な情報はここにあります。これで、ターミナルの次のコマンドでプロジェクトをビルドできます(注意してください。pomので、メインフォルダでのみ使用してください。これで、Javaを使用してApiと対話する準備が整いました。
概要
始める前に、テストするための簡単なAPIを見つける必要があります。 テスト目的で無料で便利なAPIを見つけるのが難しい場合があります。 RapidAPIでは、10,000以上のApiをテストして接続できます。 ここでは、プログラミングスキルをテストしたり、便利なアプリを構築したり、独自のApiを作成したりすることができます。
JavaでApiの使用を開始する方法
RapidAPIにサインアップ
前に述べたように、RapidAPIには10,000以上のApiがあります。 そして、そのプラットフォームを使用して1万人以上の開発者と、それは最も人気があり、信頼できるAPIプラットフォームの一つです。
だから始めるにはここをクリックして、それは無料です。
APIを探す
ユーザーアカウントができたので、一緒にプレイするAPIを探しましょう。
オン
RapidAPI.com、Apiを参照して見つけることができます。
- カテゴリ(例: のは、テレビや映画についてのいくつかの情報を取得するには、IMDbのAPIを検索してみましょう:
APIを購読
このAPIを使用して開始するには、最初にそれを購読する必要があります。 (ヒント:1000の無料APIリクエスト/日を可能にするフリーミアムプランがあります)。 あなたは超過が発生した場合には、クレジットカードを入力する必要があります。代わりに(クレジットカードなしで)いくつかの無料のApiを試してみたい場合は、このコレクションを参照してください。
購読したら、エンドポイントをテストする準備が整いました。
エンドポイントのテスト
このAPIにあるすべてのエンドポイントを調べてみましょう。 APIページの左側を見てください。
IMDb APIには二つのエンドポイントしかありません。
GET By Search
–クエリ文字列でIMDbデータベースを検索GET By ID or Title
–特定のタイトルに関する詳細な情報(映画/テレビ、キャスト、プロダクションなどの情報を含む)を取得します。
いずれかのAPIエンドポイントで、必要なパラメータを入力し、”Test Endpoint”をクリックします。
右側には、開発者がサポートされている任意の言語でこのAPIに接続する方法を示すスニペット部分が表示されます。このAPIでは、2つのヘッダー(API固有の名前と独自のRapidAPIトークン)を追加する必要があります。 他のすべてのparamsは、具体的なエンドポイントに依存します。 このAPIにあるすべてのエンドポイントを調べてみましょう。 メインページの左側を見てください。
APIを使用してデータを取得します
さて、準備ができて、それはコーディングのための時間です。 Imdbデータの中に存在する有名な映画についてすべてを見てみましょう。 コードに戻り、次のものをインポートします:ここでは、送信するパラメータを準備するための
URLEncoder
、およびUnirestライブラリから3つの必要なオブジェクトをインポートします。- 応答を処理するため(HttpResponse)、
- JSON-typeを割り当てるため(JsonNode)、
- GET要求を行うため(Unirest)。ここで、すべてのコードが次のようになるメインクラスを作成しましょう。
public class App{ public static void main( String args ) throws Exception { //Here will be your code }}
例外を忘れないでください。 プロジェクトを改善するためには、すべての警告とエラーを処理する必要があります。
さて、いくつかのプロセスを自動化するためのいくつかの文字列変数を作成しましょう:クエリを作成したので、リクエストを送信して応答を処理しましょう。
ご覧のように、それは非常に簡単です。
リクエストを作成するには、GET関数でUnirestライブラリを使用します。
ヘッダーに注意を払う–分割にドットを使用して追加することができます。
リクエストを行い、
HttpResponse
オブジェクトによって応答を処理した後、結果を見ることができます。First
println
は、要求されたアクションの状況を説明する短い番号で、応答のステータスコードを表示します。私たちの場合、すべてが正常であれば、200–OKステータスを返す必要があります。2番目の
println
は、応答ヘッダーの1つである”Content–Type”を表示します。rapidapiの組み込みAPIコンソールで何を得るべきか見てみましょう。 フォームフィールドにクエリを入力し、”Test Endpoint”をクリックするだけです。上のスクリーンショットと同じ結果が表示されます。
さて、コードを確認しましょう。 プログラムを実行すると、次のように表示されます:
200
JSON応答を取得
前のコードセクションでは、JSON形式のタイプを応答に割り当てるために
JsonNode
オブ問題は、デフォルトのJsonNodeオブジェクトがデータを単一の行に出力することです。 データを修正するためのライブラリを1つ追加しましょう–GSON。 あなたのpomを変更します。次の依存関係を持つxmlファイル:<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version></dependency>
今、あなたの*のインポートセクションにいくつかのインポート行を追加しましょう。java file:
これらのオブジェクトは、JSONをきれいに印刷するのに役立ちます。 さて、これでエンドポイントを呼び出して応答を得ることができます。
すべてがうまくいけば、次の応答が表示されるはずです。
例:Javaを使用する&他のタイプのデータを表示するApi
覚えているように、以前のリクエストのContent-Typeヘッダーは”application/json”でしたが、JSONで処理できないものを送受信したい場合はどうなりますか?
たとえば、ファイルや画像ですか?
これをMeme Generator APIで実証してみましょう。
ミームジェネレータAPIは5つのエンドポイントで構成されています:
- generate meme
- get fonts
- Upload Image
- Upload font
- get images
- get images
Generate memeエンドポイントを使用しましょう。
まず、コードの先頭に次の行を追加してインポートを変更しましょう。
import java.io.InputStream;import java.io.File;import java.awt.image.BufferedImage;import javax.imageio.ImageIO;
mainメソッド内のコードスニペット:
ここでは、応答の生の本体を
InputStream
BufferedImage
オブジェクト動的イメージでそれを読み取ることです。最後に、画像を作成(または更新)しましょう。jpgファイルとその中にバッファを保存します。 これは次のように出力する必要があります。ご覧のように、APIはimageオブジェクトに戻ります。
実際の画像を見るために、私たちのプロジェクトのメインフォルダをチェックしてみましょう。
結論
このガイドでは、rapidapiを使用してエキサApiを使用する方法Pythonで
- PHPで
- JavaScriptで
- 反応で
- Axios
- NodeJSで
- VueJSで
- 反応で
- Ruby on Railsで
- C#で
- Google Sheetsで
- カテゴリ(例: のは、テレビや映画についてのいくつかの情報を取得するには、IMDbのAPIを検索してみましょう:
- javaでapiを作成する方法
- rest Apiチュートリアルのリスト
- javaでtwitter apiを使用する方法
- javaでskyscanner apiを使用する方法
- JavaでYahoo Finance Apiを使用する方法
faq
javaでapiを作成するにはどうすればよいですか?APIを作成する方法については、次のJava APIチュートリアルを参照してください。
JavaはAPIですか?
Javaはプログラミング言語です。
Apiは、技術製品とサービスが相互に通信できるようにする一連の定義とプロトコルです。Java Application Programming Interface(API)は、Java development kit(JDK)またはJavaを使用してアクセス可能なApiを参照できます。JSONはAPIですか?