SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
Grails
       Parte II

Josino Rodrigues Neto
  jrn4@cin.ufpe.br
Integração
Rest, o que é isso ?
Métodos HTTP
•   GET
•   PUT
•   DELETE
•   HEAD
•   POST
Temos que mapear métodos HTTP para
     a nossas URLs do sistema
Uma rápida Introdução ao REST
http://www.infoq.com/br/articles/rest-introduction
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
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()
   }
}
Criar Controller Rest
private def SendNotFoundResponse() {
      response.status = 404
      render contentType: "application/xml", {
      errors {
            message("Produto not found with id: " +
                  params.id)
}
}
}
Mapear URL

"/livrorest/$id?"(controller:"livrorest"){
     action = [GET:"show", POST:"list"]
}
Testando nosso trabalho
http://code.google.com/p/rest-client/
Criação de plugins
Criar um plugin encurtador de url

>> grails create-plugin shortenurl
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
}
}
Criando Service
import org.grails.shortenurl.*
class ShortenUrlService {
     boolean transactional = false
     def tinyurl(String longUrl) {
          return TinyUrl.shorten(longUrl)
     }
}
Ok. Pronto Agora é so
empacotar o plugin!!!
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
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)
    }
}

Mais conteúdo relacionado

Semelhante a Grails parte ii - plugins & rest

Tutorial instalacao-glpi-ocs
Tutorial instalacao-glpi-ocsTutorial instalacao-glpi-ocs
Tutorial instalacao-glpi-ocs
Joao Muela
 

Semelhante a Grails parte ii - plugins & rest (20)

PHP no Google AppEngine
PHP no Google AppEnginePHP no Google AppEngine
PHP no Google AppEngine
 
servlet-requisicoes
servlet-requisicoesservlet-requisicoes
servlet-requisicoes
 
Python 08
Python 08Python 08
Python 08
 
Tutorial instalacao-glpi-ocs
Tutorial instalacao-glpi-ocsTutorial instalacao-glpi-ocs
Tutorial instalacao-glpi-ocs
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Oficina Python e Google App Engine
Oficina Python e Google App EngineOficina Python e Google App Engine
Oficina Python e Google App Engine
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Integração de sistemas legados com Plone
Integração de sistemas legados com PloneIntegração de sistemas legados com Plone
Integração de sistemas legados com Plone
 
Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02Curso de Ruby on Rails - Aula 02
Curso de Ruby on Rails - Aula 02
 
Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014Código legado - PHP Conference Brasil - 2014
Código legado - PHP Conference Brasil - 2014
 
Construindo sua primeira ontologia
Construindo sua primeira ontologiaConstruindo sua primeira ontologia
Construindo sua primeira ontologia
 
PyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com PythonPyData - Consumindo e publicando web APIs com Python
PyData - Consumindo e publicando web APIs com Python
 
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
Desenvolvimento de sistemas web com PHP Frameworks - Aula 2
 
API Apontador
API ApontadorAPI Apontador
API Apontador
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
Desenvolvimento de Aplicações para o Google App Engine (CPBR5)
 
Desenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App EngineDesenvolvimento de aplicações para o Google App Engine
Desenvolvimento de aplicações para o Google App Engine
 
Desenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana frameworkDesenvolvimento ágil com Kohana framework
Desenvolvimento ágil com Kohana framework
 
Angular js
Angular jsAngular js
Angular js
 

Grails parte ii - plugins & rest