grails
Classes de domaine en tant que ressources REST
Recherche…
Introduction
La méthode la plus simple pour créer une API RESTful dans Grails consiste à exposer une classe de domaine en tant que ressource REST. Cela peut être fait en ajoutant la transformation grails.rest.Resource à n'importe quelle classe de domaine.
API REST simple avec grails
import grails.rest.*
@Resource(uri='/books')
class Book {
String title
static constraints = {
title blank:false
}
}
En ajoutant simplement la transformation de ressource et en spécifiant un URI, votre classe de domaine sera automatiquement disponible en tant que ressource REST aux formats XML ou JSON. La transformation enregistre automatiquement le mappage d'URL RESTful nécessaire et crée un contrôleur appelé BookController.
Vous pouvez l'essayer en ajoutant des données de test à BootStrap.groovy:
def init = { servletContext ->
new Book(title:"The Stand").save()
new Book(title:"The Shining").save()
}
Et puis en cliquant sur l'URL http://localhost:8080/books/1
, la réponse sera rendue comme suit:
<?xml version="1.0" encoding="UTF-8"?>
<book id="1">
<title>The Stand</title>
</book>
Si vous changez l'URL en http://localhost:8080/books/1.json
vous obtiendrez une réponse JSON telle que:
{"id":1,"title":"The Stand"}
Si vous souhaitez modifier la valeur par défaut pour renvoyer JSON au lieu de XML, vous pouvez le faire en définissant l'attribut formats de la transformation Resource:
import grails.rest.*
@Resource(uri='/books', formats=['json', 'xml'])
class Book {
...
}
Correspondance avec les ressources REST
Si vous préférez conserver la déclaration du mappage d'URL dans votre fichier UrlMappings.groovy, il suffit de supprimer l'attribut uri de la transformation Resource et d'ajouter la ligne suivante à UrlMappings.groovy
:
"/books"(resources:"book")
L'extension de votre API pour inclure plus de points d'extrémité devient alors triviale:
"/books"(resources:"book") {
"/publisher"(controller:"publisher", method:"GET")
}
L'exemple ci-dessus exposera l'URI /books/1/publisher.
Ajouter HTTPS au serveur Grails
Les certificats SSL utilisent quelque chose appelé cryptographie à clé publique. Nous devons utiliser des Https au lieu de HTTP en raison de la sécurité des données entre les serveurs et de l'amélioration de la confiance des clients. Pour activer cette option dans grails, nous devons exécuter notre application différemment. La commande ci-dessous:
grails run-app -https