grails
Clases de dominio como recursos REST
Buscar..
Introducción
La forma más fácil de crear una API RESTful en Grails es exponer una clase de dominio como un recurso REST. Esto se puede hacer agregando la transformación grails.rest.Resource a cualquier clase de dominio.
API REST simple con grails
import grails.rest.*
@Resource(uri='/books')
class Book {
String title
static constraints = {
title blank:false
}
}
Simplemente agregando la transformación de recursos y especificando un URI, su clase de dominio estará disponible automáticamente como un recurso REST en formatos XML o JSON. La transformación registrará automáticamente la asignación de URL RESTful necesaria y creará un controlador llamado BookController.
Puede probarlo agregando algunos datos de prueba a BootStrap.groovy:
def init = { servletContext ->
new Book(title:"The Stand").save()
new Book(title:"The Shining").save()
}
Y luego presionando la URL http://localhost:8080/books/1
, que mostrará la respuesta como:
<?xml version="1.0" encoding="UTF-8"?>
<book id="1">
<title>The Stand</title>
</book>
Si cambia la URL a http://localhost:8080/books/1.json
obtendrá una respuesta JSON como:
{"id":1,"title":"The Stand"}
Si desea cambiar el valor predeterminado para devolver JSON en lugar de XML, puede hacerlo configurando el atributo de formatos de la transformación de recursos:
import grails.rest.*
@Resource(uri='/books', formats=['json', 'xml'])
class Book {
...
}
Mapeo a recursos REST
Si prefiere mantener la declaración de la asignación de URL en su archivo UrlMappings.groovy, basta con eliminar el atributo uri de la transformación de recursos y agregar la siguiente línea a UrlMappings.groovy
:
"/books"(resources:"book")
Extender su API para incluir más puntos finales se vuelve trivial:
"/books"(resources:"book") {
"/publisher"(controller:"publisher", method:"GET")
}
El ejemplo anterior expondrá el URI /books/1/publisher.
Añadir HTTPS a Grails Server
Los certificados SSL usan algo llamado criptografía de clave pública. Necesitamos usar HTTP en lugar de HTTP debido a que los datos se mantienen seguros entre los servidores y a la confianza del cliente. Para habilitar esta opción en Grails, tenemos que ejecutar nuestra aplicación de manera diferente. El siguiente comando:
grails run-app -https