grails
Domänenklassen als REST-Ressourcen
Suche…
Einführung
Die einfachste Möglichkeit zum Erstellen einer RESTful-API in Grails besteht darin, eine Domänenklasse als REST-Ressource bereitzustellen. Dies kann durch Hinzufügen der Grails.rest.Resource-Transformation zu einer beliebigen Domänenklasse erfolgen.
Einfache REST-API mit Grails
import grails.rest.*
@Resource(uri='/books')
class Book {
String title
static constraints = {
title blank:false
}
}
Durch Hinzufügen der Ressourcenumwandlung und Festlegen eines URI wird Ihre Domänenklasse automatisch als REST-Ressource im XML- oder JSON-Format verfügbar. Die Umwandlung registriert automatisch die erforderliche RESTful-URL-Zuordnung und erstellt einen Controller namens BookController.
Sie können es ausprobieren, indem Sie einige Testdaten zu BootStrap.groovy hinzufügen:
def init = { servletContext ->
new Book(title:"The Stand").save()
new Book(title:"The Shining").save()
}
Und dann die URL http://localhost:8080/books/1
, die die Antwort wie folgt rendert:
<?xml version="1.0" encoding="UTF-8"?>
<book id="1">
<title>The Stand</title>
</book>
Wenn Sie die URL in http://localhost:8080/books/1.json
Sie eine JSON-Antwort, beispielsweise:
{"id":1,"title":"The Stand"}
Wenn Sie den Standardwert so ändern möchten, dass JSON anstelle von XML zurückgegeben wird, können Sie dies tun, indem Sie das Formatattribut der Resource-Umwandlung festlegen:
import grails.rest.*
@Resource(uri='/books', formats=['json', 'xml'])
class Book {
...
}
Zuordnung zu REST-Ressourcen
Wenn Sie die Deklaration der URL-Zuordnung lieber in Ihrer UrlMappings.groovy-Datei behalten möchten, müssen Sie einfach das uri-Attribut der Resource-Umwandlung entfernen und die folgende Zeile zu UrlMappings.groovy
hinzufügen.
"/books"(resources:"book")
Wenn Sie Ihre API erweitern, um mehr Endpunkte einzubeziehen, wird dies einfach:
"/books"(resources:"book") {
"/publisher"(controller:"publisher", method:"GET")
}
Das obige Beispiel zeigt den URI /books/1/publisher.
Fügen Sie HTTPS zu Grails Server hinzu
SSL-Zertifikate verwenden eine sogenannte Public-Key-Kryptografie. Wir müssen anstelle von Http Https verwenden, da die Daten zwischen Servern geschützt sind und das Vertrauen der Kunden verbessert wird. Um diese Option in Grails zu aktivieren, müssen wir unsere App anders ausführen. Der Befehl unten:
grails run-app -https