Java API開発におけるWebサービス処理にJAX-RSを使用する
Java API 開発は広く使用されているプログラミング手法であり、その成功の背後には多くの要因がありますが、その 1 つは Web サービスの処理です。 Web サービスの処理では、RESTful Web サービスを実装するための Java フレームワークである Java API for RESTful Web Services (JAX-RS) を使用できます。この記事では、JAX-RS の基本概念、アーキテクチャ、および使用法について説明します。
RESTful Web サービスとは
JAX-RS の導入を開始する前に、RESTful Web サービスの基本概念を理解する必要があります。 RESTとはRepresentational State Transferの略で、プレゼンテーション層の状態転送を意味します。 RESTful Web サービスは、HTTP プロトコルに基づくサービスであり、Uniform Resource Identifier (URI) を使用してリソースを表し、HTTP メソッド (GET、POST、PUT、DELETE) を使用してリソースを操作します。 RESTful Web サービスは、HTTP プロトコルを使用するため、他の Web アプリケーションと簡単に対話できる軽量のサービスです。
JAX-RS アーキテクチャ
JAX-RS フレームワークは Java サーブレット API に基づいて実装されており、Java クラスとアノテーションを使用して RESTful Web サービスを定義できます。フレームワークの中心となるのは、クライアントから HTTP リクエストを受信し、それらを Java オブジェクトに変換する HTTP サーバーです。 JAX-RS では、リソースは RESTful Web サービスの中核であり、リソースはメソッドのコレクションです。これらのメソッドは HTTP リクエストを処理します。
JAX-RS フレームワークは、JAX-RS API と JAX-RS 実装という 2 つの主要な部分で構成されます。 JAX-RS API は JAX-RS 仕様を定義する Java インターフェースであり、JAX-RS 実装は JAX-RS 仕様を実装するフレームワークです。現在、Jersey、CXF、RESTeasy など、多くの JAX-RS 実装があります。
JAX-RS アノテーション
JAX-RS は主にアノテーションを通じて RESTful Web サービスを定義します。アノテーションは、Java コードからメタデータを抽出するために使用される手法です。 JAX-RS で最も一般的に使用されるアノテーションは次のとおりです。
- @Path: リソースのパスを指定します。たとえば、@Path("/books") は、リソースのパスが /books であることを示します。
- @GET、@POST、@PUT、@DELETE: HTTPメソッドを指定します。
- @Produces、@Consumes: リクエストとレスポンスのメディア タイプを指定します。
- @QueryParam、@PathParam、@FormParam: クエリ パラメーター、パス パラメーター、フォーム パラメーターを指定します。
JAX-RS の例
以下では、Jersey を使用して単純な RESTful Web サービスを実装します。このサービスは 2 つのリクエストを処理します。1 つはすべての書籍を取得するリクエスト、もう 1 つは書籍 ID に基づいて 1 つの書籍を取得するリクエストです。このサービスを実装するには、@Path、@GET、@Produces アノテーションを使用します。
まず、id と title の 2 つの属性を持つ Book クラスを作成する必要があります。次に、@Path("/books") アノテーションが付けられ、getAllBooks() と getBookById() という 2 つのメソッドが含まれる BookResource クラスを作成する必要があります。 getAllBooks() メソッドでは、@GET および @Produces アノテーションを使用して、HTTP メソッドと応答のメディア タイプを指定します。 getBookById() メソッドでは、@GET、@Path、および @Produces アノテーションを使用して、HTTP メソッド、要求パス、および応答メディア タイプを指定します。
public class Book { private int id; private String title; public Book(int id, String title) { this.id = id; this.title = title; } public int getId() { return id; } public String getTitle() { return title; } } @Path("/books") public class BookResource { private static List<Book> bookList = new ArrayList<>(); static { bookList.add(new Book(1, "Java SE 8")); bookList.add(new Book(2, "Java EE 7")); bookList.add(new Book(3, "Spring 5")); } @GET @Produces(MediaType.APPLICATION_JSON) public List<Book> getAllBooks() { return bookList; } @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public Book getBookById(@PathParam("id") int id) { return bookList.stream().filter(b -> b.getId() == id).findFirst().orElse(null); } }
最後に、ローカル ホスト localhost のポート 8080 でこのサービスを実行するためのスタートアップ クラスを作成する必要があります。 URI /api を使用して、このサービスへのパスを指定します。たとえば、すべての書籍を取得するリクエストは http://localhost:8080/api/books にあり、ID 1 の書籍を取得するリクエストは http://localhost:8080/api/books/1 になります。
public class Application extends ResourceConfig { public Application() { packages("com.example.web"); } public static void main(String[] args) throws Exception { URI baseUri = UriBuilder.fromUri("http://localhost/").port(8080).build(); ResourceConfig config = new Application(); HttpServer server = JdkHttpServerFactory.createHttpServer(baseUri, config, false); Runtime.getRuntime().addShutdownHook(new Thread(server::stop)); server.start(); } }
概要
JAX-RS は、RESTful Web サービスを作成する便利な方法を提供し、Java アプリケーションとの統合は非常に簡単です。 JAX-RS API は、RESTful Web サービスを定義するための一連のアノテーションとクラスを提供し、JAX-RS 実装はこれらの仕様を実際の Java コードに変換します。 JAX-RS を使用すると、RESTful Web サービスの作成とデプロイが容易になり、アプリケーションの可用性とスケーラビリティが向上します。
以上がJava API開発におけるWebサービス処理にJAX-RSを使用するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Java の乱数ジェネレーターのガイド。ここでは、Java の関数について例を挙げて説明し、2 つの異なるジェネレーターについて例を挙げて説明します。

Java のアームストロング番号に関するガイド。ここでは、Java でのアームストロング数の概要とコードの一部について説明します。

Java の Weka へのガイド。ここでは、weka java の概要、使い方、プラットフォームの種類、利点について例を交えて説明します。

この記事では、Java Spring の面接で最もよく聞かれる質問とその詳細な回答をまとめました。面接を突破できるように。

Java 8は、Stream APIを導入し、データ収集を処理する強力で表現力のある方法を提供します。ただし、ストリームを使用する際の一般的な質問は次のとおりです。 従来のループにより、早期の中断やリターンが可能になりますが、StreamのForeachメソッドはこの方法を直接サポートしていません。この記事では、理由を説明し、ストリーム処理システムに早期終了を実装するための代替方法を調査します。 さらに読み取り:JavaストリームAPIの改善 ストリームを理解してください Foreachメソッドは、ストリーム内の各要素で1つの操作を実行する端末操作です。その設計意図はです
