Поиск…


Вступление

Самый простой способ создать 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow