grails
Классы доменов как ресурсы REST
Поиск…
Вступление
Самый простой способ создать RESTful API в Grails - показать класс домена как ресурс REST. Это можно сделать, добавив преобразование grails.rest.Resource в любой класс домена.
Простой API REST с гравиями
import grails.rest.*
@Resource(uri='/books')
class Book {
String title
static constraints = {
title blank:false
}
}
Просто добавив преобразование ресурсов и указав URI, ваш класс домена будет автоматически доступен как ресурс REST в форматах XML или JSON. Преобразование автоматически зарегистрирует необходимое сопоставление URL-адресов RESTful и создаст контроллер под названием BookController.
Вы можете попробовать это, добавив некоторые тестовые данные в BootStrap.groovy:
def init = { servletContext ->
new Book(title:"The Stand").save()
new Book(title:"The Shining").save()
}
А затем нажав URL http://localhost:8080/books/1
, который даст ответ вроде:
<?xml version="1.0" encoding="UTF-8"?>
<book id="1">
<title>The Stand</title>
</book>
Если вы измените URL-адрес на http://localhost:8080/books/1.json
вы получите ответ JSON, например:
{"id":1,"title":"The Stand"}
Если вы хотите изменить значение по умолчанию для возврата JSON вместо XML, вы можете сделать это, установив атрибут format для преобразования Resource:
import grails.rest.*
@Resource(uri='/books', formats=['json', 'xml'])
class Book {
...
}
Отображение ресурсов REST
Если вы хотите сохранить объявление URL-адреса в вашем файле UrlMappings.groovy, просто удалите атрибут uri преобразования Resource и добавьте следующую строку в UrlMappings.groovy
:
"/books"(resources:"book")
Расширение API для включения большего количества конечных точек становится тривиальным:
"/books"(resources:"book") {
"/publisher"(controller:"publisher", method:"GET")
}
В приведенном выше примере будет отображаться URI /books/1/publisher.
Добавить HTTPS в сервер Grails
SSL-сертификаты используют криптографию с открытым ключом. Нам нужно использовать Https вместо Http из-за хранения данных между серверами и повышения доверия клиентов. Чтобы включить этот параметр в grails, мы должны запускать наше приложение по-другому. Команда ниже:
grails run-app -https