web-dev-qa-db-ja.com

JSON REST APIs?

私はJSON-REST APIのサーバー側を構築する必要があり、それを行うために(JSON-POJOマッピング機能を使用して)Jerseyで遊んでいます。

問題は、可能な限り単純なユースケースをテストする場合でも、SOに関するいくつかの質問が必要であり、かなりの調査が必要なことです。要するに、これはJSoupなどのスタイルではあまり流動的なAPIではなく、すべてがXMLであった時代のツールであるように見え、その後JSONに改良されました。

これは、たとえば、XMLに関係することは何もしていなくても、POJOオブジェクトに@XmlRootElementで注釈を付ける必要があるという要件で確認できます。

ジャージーよりも使いやすいかもしれない他のライブラリ、おそらくもっと最近のライブラリがあるかどうか疑問に思っていますか?

23
sanity

Jerseyは、Jacksonを使用して、注釈なしでPOJOをJSONにシリアル化できます。これを設定するには、JSONConfiguration.FEATURE_POJO_MAPPINGプロパティをtrueに追加します。

web.xml、次のサーブレット初期化パラメータを追加します。

<init-param>
    <param-name>com.Sun.jersey.api.json.POJOMappingFeature</param-name>
    <param-value>true</param-value>
</init-param>

ジャージーのドキュメントを参照

10
hakonlo

REST APIの場合は JBoss RESTEasy を強くお勧めします。いくつかのプロジェクトで使用しており、セットアップが簡単であることがわかりました。また、必要なら春。

RESTEasyでのJSONサポートにJacksonとGsonの両方を使用しましたが、それは非常に簡単です。 POJOにJAXBアノテーションを付け、適切なライブラリを含めるだけです。

RESTEasyのもう1つの本当に素晴らしい部分は、マルチパートフォームデータの優れたサポートです。 @MultipartFormアノテーションを提供します。これにより、コードを記述せずにマルチパートフォームをPOJOにバインドできます。

RESTはJAX-RSに準拠していないため、Spring MVCを使用しないことをお勧めします。JAX-RS準拠のインターフェースを使用すると、別の実装に切り替えると、移植性が少し向上します道。

4
Matt Accola

jsonをpojosに変換する場合: gson および jacksonRestful の場合 spring または restlet を使用します。

3
NimChimpsky

注:私は EclipseLink JAXB(MOXy) リード、 JAXBのメンバー(JSR-222) 専門家グループ、および-への貢献者 ジャージー プロジェクト。

Jerseyまたは任意のJAX-RSプロジェクトでは、MessageBodyReader/MessageBodyWriterを使用してJSONバインディングを完全に制御できます。以下は、このメカニズムを使用して、JSONプロバイダーとしてMOXyを活用する例です。

3
bdoughan

これはバイアスの答えですが、私たちはすべてのエンタープライズおよびソーシャルアプリケーションにSnowを使用しており、Guiceに完全に基づいて非常に軽量であり、任意のREST呼び出しを任意の=にバインドできますJavaメソッド(Guiceが管理するオブジェクトを使用)。非常に柔軟でシンプルです。

http://britesnow.com/snow

私はこのマイクロフレームワークの作成者なので、フィードバックをお待ちしています。

1
Jeremy Chone

NimChimpskyが言及した のように、レストレットは箱から出してこれを行います。さらに、クライアントもJavaの場合は、機能をインターフェイスに抽象化し、クライアント側プロキシでかなり簡単にラップできます。このチュートリアルページでは、私が述べたことの方法を示しています- ここ

0
javamonkey79

[〜#〜] jest [〜#〜] を試すことができます OpenJPA で動作します。

0
thSoft