1

私は、grails用のJAX-RSプラグインを検討し始めました。これは、主にJSR-311に基づいており、標準に従うことが通常は賢明な方法であるため、これが進むべき道だと思いました。ただし、GrailのUrlMappingsを使用すると、基本的に同じことを達成できるようです。何かが足りないと思いますが、過度に複雑なことはしていません。基本的には、APIを介してCRUDを公開する必要があります。両方のバージョンで同じことを行う例:

JAX-RS:

@PUT
@Consumes(['application/json'])
@Produces(['application/json'])
Response putUser(User user) {
  user.save(flush:true)
  ok user
}

Grails:

def update = {
  def user = new User(params['user'])
  user.save(flush:true)
  render user as JSON
}

明らかに、これは過度に単純化された例であり、私が言ったように、おそらく私は重要な何かを見逃しています。また、Grailsに組み込まれているメカニズムの良いところは、コンテンツネゴシエーションを一緒に利用できることです。

誰かこれについて何か意見がありますか?

4

2 に答える 2

1

同じ決定をしなければなりませんでしたが、APIはそれほど複雑ではなく、サポートする必要のあるAPI呼び出しの数が限られていたため、URLマッピングを使用する方が簡単であることがわかりました。

LOEと実装をサポートできるリソースに基づいて、保守が容易になるものにたどり着いた場合。

于 2010-10-27T20:24:03.953 に答える
0

jax-rsプラグインは、ドメインモデルに直接Webサービスを作成する場合に非常に便利です。モデルのCRUDAPIを自動的に作成する「generate-resource」コマンドを提供します。

grails generate-resource mydomain.Model

この部分は正常に機能しているようですが、プラグインでかなりの数のバグ/問題が発生し、最終的にURLマッピングを使用してRESTサービスを実装する必要がありました。

URLマッピング方法はコーディングが多いように見えますが、完全に機能します。

import grails.converters.JSON

class ModelServiceController {
    def id = params.id
    def myModel = MyModel.findById(id)
    render myModel as JSON
}

これがgrailsRESTのリンクです

http://grails.org/doc/1.0.x/guide/13.%20Web%20Services.html

于 2011-09-26T21:23:29.437 に答える