質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Jersey

JerseyはRESTful な Web サービスの実装を支援するフレームワークのひとつ。Restlet や RestEasyにくらべ、直感的な方法で開発が可能。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

4320閲覧

WebAPIの設計とJerseyの実装について

darum

総合スコア70

Jersey

JerseyはRESTful な Web サービスの実装を支援するフレームワークのひとつ。Restlet や RestEasyにくらべ、直感的な方法で開発が可能。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

2クリップ

投稿2015/04/17 21:59

WebAPIの設計について
DBにINSERT(例えばメンバ追加)するAPIを
各種サイトを参考に
POST /member
としました。
その際に、名前を渡して、システムが割り当てるIDを返すようなIFとしようと思っていますが
これは一般的でしょうか?

Jerseyの実装について
上記を実現するとして以下のようなメソッドを考えています。

lang

1@POST 2@Consumes("Application/JSON") 3public Response insert(MemberBean inData) { 4}

Responseにしているのは、結果をステータスコードで返すためですが、
このResponseに戻り値のJSONデータを載せるにはどうしたらよいでしょうか?
戻り値のデータもMemberBeanで返すことを考えています。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

Responseを返すより、Beanを返す方が良い模様です。
ステータスは、WebApplicationExceptionのサブクラスをthrowすれば良い模様です。
参考↓
http://stackoverflow.com/questions/4687271/jax-rs-how-to-return-json-and-http-status-code-together

なお、Jersey2.xでないとダメなようです。

投稿2015/04/26 23:49

darum

総合スコア70

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

これは一般的でしょうか?

はい。RESTfulとして一般的だと思います。

DOA.insert()でDBにMemberBeanを挿入し、挿入した結果のIDがセットされたMemberBeanが返ってくるという想定で、以下のコードになりますかね。

lang

1 @POST 2 @Produces({MediaType.APPLICATION_JSON}) 3 public MemberBean insert(MemberBean inserting) { 4 MemberBean inserted = DOA.insert(inserting); 5 return inserted; 6 }

投稿2015/04/17 23:35

chokojori

総合スコア971

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

darum

2015/04/17 23:45

このやり方の場合、例えばパラメータエラー時に、ステータス=400を返したい。 ということができない認識なのですが、いかがでしょうか? ステータスコードを返すためにResponseを返す必要があるかと思っていました。 ※ データをselectする、GETメソッドのIFでは、List<MemberBean> を返す設計です。
guest

0

JSON を返すときはこんな書き方みたいですよ。

return Response.ok("{\"result\": \"ok\"}", MediaType.APPLICATION_JSON).build();

投稿2015/04/17 23:03

kodai

総合スコア759

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

darum

2015/04/17 23:44

@Produce(MediaType.APPLICATION_JSON) と指定すると、メソッドの返り値Objectが、自動でJSONメッセージに変換される認識ですが、 そのような感じで手軽にJSONメッセージを生成することはできないでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問