Grails с JAX-RS и UrlMappings для служб RESTful - PullRequest
1 голос
/ 28 октября 2010

Я начал искать плагин JAX-RS для Grails и подумал, что это был путь, главным образом потому, что он основан на JSR-311, и я считаю, что следующие стандарты - это обычно , что разумно сделать,Однако, используя UrlMappings от Grail, кажется, я в основном достигаю того же.Я полагаю, что что-то упустил, однако мы не делаем ничего слишком сложного.Нам просто нужно выставить CRUD через API.Пример того же действия с обеими версиями:

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 заключается в том, что я могу использовать Content Negotiation вместе с ним.

У кого-нибудь есть мнения по этому поводу?

Ответы [ 2 ]

1 голос
/ 28 октября 2010

Мне пришлось принять то же решение, и я обнаружил, что проще использовать сопоставления URL-адресов, потому что API не был таким сложным, и было ограниченное количество вызовов API, которые необходимо было поддерживать.

Если дошло до того, что было бы проще поддерживать на основе LOE и ресурсов, способных поддержать реализацию.

0 голосов
/ 27 сентября 2011

Плагин jax-rs очень полезен, если вы создаете веб-сервисы прямо для моделей вашего домена.Он дает вам команду «generate-resource», которая автоматически создает CRUD apis для вашей модели.

grails generate-resource mydomain.Model

Эта часть, кажется, работает нормально, однако я столкнулся с довольно многими ошибками / проблемами с плагином, которые мне, наконец, пришлось реализовать службы REST с использованием URL-mappings.

Несмотря на то, что метод отображения URL выглядит более кодирующим, он отлично работает.

import grails.converters.JSON

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

Вот ссылка для grails REST

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

...