メインコンテンツへスキップ
  1. 記事一覧/

Jerseyフレームワークの個人的メモ

·70 文字·1 分
Java Jersey WebFramework Programing
Bigbell
著者
Bigbell
某メガベンチャーで働いているエンジニアの卵です。
目次

jerseyで使用されるアノテーション
#

  • @GET, @PUT, @POST @DELETE, @HEAD
    • 参考
    • 上記のアノテーションを付けることでHTTPメソッドを指定できる
  • @Path
    • 参考
    • 上記のアノテーションを付けることでAPIのパスを指定できる
  • @Produces
    • レスポンスのMIMEタイプを指定するのに使う
  • @BeanParam
    • 参考
    • 他の場所でクラスにまとめて定義したリクエストパラメータを注入するのに使用する
  • @Consumes
    • 参考
    • リクエストのMIMEタイプを指定するのに使う
  • @PathParam
    • 参考
    • パスパラメータを取得するのに使用する
  • @Provider
    • @Providerアノテーションが付けられたクラスは、JAX-RS(Java API for RESTful Web Services)アプリケーションのコンポーネントとして認識される。
    • Jerseyによって自動的に検出され、アプリケーションの実行時に適切なタイミングで利用されるらしい。

レスポンスについて
#

  • 参考
  • Response型でメソッドを作ってreturnすればOK
  • 例として200を返す時のコードは以下
    public Response r() { return Response.status(Status.OK).build(); }

Jerseyにおけるレスポンスの返し方
#

  • レスポンスとしてインスタンス化したクラスをそのままreturnする場合と、javax.ws.rs.core.Response を使ってレスポンスを返している所があり使い分けが分からなくなったのでここにメモしておく
  • インスタンス化したクラスをそのままreturnする方法は @Produces({ MediaType.APPLICATION_JSON }) アノテーションを付けることにより、Jerseyが自動でJSONとしてシリアライズしてくれるのでそのままレスポンスとして返せる
    • この方法ではレスポンスをシンプルに作成できるが、レスポンスコードは必ず200が設定される
    • そのため、200以外のレスポンスコードの設定したい場合はjavax.ws.rs.core.Responseを使用する必要がある

リクエストヘッダー等の取得
#

以下のコードのように@Context ContainerRequestContext contextと書くとリクエストヘッダー等の情報を取得できる

public Response instances(
        @Context ContainerRequestContext context,
        @Context HttpServletResponse response
    ) {}

Related

Let's Encrypt + Cloudflare(プロキシ有効)な環境で「リダイレクトが繰り返し行われました」のエラーが出る時の対処法
·36 文字·1 分
Network サーバー Cloudflare Let's Encrypt Cloud
Cloudflareの導入によって発生した「リダイレクトが繰り返し行われました」への対処法
ポート開放ができない環境でサーバを外部公開するための個人的ベストプラクティス
·329 文字·2 分
Network サーバー Cloudflare ngrok OS
今回は、ポート開放ができない環境でサーバを外部公開する方法を紹介したいと思います。
Bibtexの導入
·67 文字·1 分
LaTex VSCode 拡張機能 Bibtex Programing
この記事では、LaTexで参考文献を管理する上で便利なBibtexについて紹介します。