Grails parte ii - plugins & rest

20
Grails Parte II Josino Rodrigues Neto [email protected]

Transcript of Grails parte ii - plugins & rest

Page 1: Grails   parte ii - plugins & rest

Grails Parte II

Josino Rodrigues Neto

[email protected]

Page 2: Grails   parte ii - plugins & rest

Integração

Page 3: Grails   parte ii - plugins & rest

Rest, o que é isso ?

Page 4: Grails   parte ii - plugins & rest

Métodos HTTP • GET

• PUT

• DELETE

• HEAD

• POST

Page 5: Grails   parte ii - plugins & rest

Temos que mapear métodos HTTP para a nossas URLs do sistema

Page 6: Grails   parte ii - plugins & rest

Uma rápida Introdução ao REST http://www.infoq.com/br/articles/rest-introduction

Page 7: Grails   parte ii - plugins & rest
Page 8: Grails   parte ii - plugins & rest

Um exemplo de Serviço

• Instalar e executar o plugin no projeto de vocês

grails install-plugin create-domain-uml

grails create-domain-uml

Page 9: Grails   parte ii - plugins & rest

Criar Controller Rest def show = {

Livro livro = Livro.get(params.id)

if (livro) {

render livro as XML

} else {

SendNotFoundResponse()

}

}

def list = {

def livros = Livro.list()

if (livros) {

render livros as XML

} else {

SendNotFoundResponse()

}

}

Page 10: Grails   parte ii - plugins & rest

private def SendNotFoundResponse() {

response.status = 404

render contentType: "application/xml", {

errors {

message("Produto not found with id: " +

params.id)

}

}

}

Criar Controller Rest

Page 11: Grails   parte ii - plugins & rest

Mapear URL

"/livrorest/$id?"(controller:"livrorest"){

action = [GET:"show", POST:"list"]

}

Page 12: Grails   parte ii - plugins & rest

Testando nosso trabalho

Page 13: Grails   parte ii - plugins & rest

http://code.google.com/p/rest-client/

Page 14: Grails   parte ii - plugins & rest

Criação de plugins

Page 15: Grails   parte ii - plugins & rest

Criar um plugin encurtador de url

>> grails create-plugin shortenurl

Page 16: Grails   parte ii - plugins & rest

Classe Utilitária para encurtar URL

package org.grails.shortenurl

class TinyUrl{

static String shorten(String longUrl){

def addr = "http://tinyurl.com/api-

create.php?url=${longUrl}"

return addr.toURL().text

}

}

Page 17: Grails   parte ii - plugins & rest

Criando Service

import org.grails.shortenurl.*

class ShortenUrlService {

boolean transactional = false

def tinyurl(String longUrl) {

return TinyUrl.shorten(longUrl)

}

}

Page 18: Grails   parte ii - plugins & rest

Ok. Pronto Agora é so empacotar o plugin!!!

Page 19: Grails   parte ii - plugins & rest

Empacotando o plugin >> grails package-plugin

Agora é só plugar ele em uma aplicação utilizando o comando:

>> grails install-plugin grails-shortenurl-0.1.zip

Page 20: Grails   parte ii - plugins & rest

Usando o plugin package exemploufpe

class ShortenurlController {

def shortenUrlService

def index = {

render "This is a test for the ShortenUrl plug-in

" + "Type

/ExemploUFPE/shorturl?url=http://grails.org to try

it out."

}

def shorturl = {

render shortenUrlService.tinyurl(params.url)

}

}