Szukaj…


Wprowadzenie

Najłatwiejszym sposobem utworzenia interfejsu API RESTful w Grails jest udostępnienie klasy domeny jako zasobu REST. Można to zrobić, dodając transformację grails.rest.Resource do dowolnej klasy domeny.

Prosty interfejs API REST z grails

import grails.rest.*

@Resource(uri='/books')
class Book {

    String title

    static constraints = {
        title blank:false
    }
}

Po prostu dodając transformację zasobów i określając identyfikator URI, klasa domeny będzie automatycznie dostępna jako zasób REST w formacie XML lub JSON. Transformacja automatycznie zarejestruje niezbędne mapowanie adresów URL RESTful i utworzy kontroler o nazwie BookController.

Możesz to wypróbować, dodając niektóre dane testowe do BootStrap.groovy:

def init = { servletContext ->
    new Book(title:"The Stand").save()
    new Book(title:"The Shining").save()
}

A następnie naciśnięcie adresu URL http://localhost:8080/books/1 , co spowoduje wyświetlenie odpowiedzi:

<?xml version="1.0" encoding="UTF-8"?>
<book id="1">
    <title>The Stand</title>
</book>

Jeśli zmienisz adres URL na http://localhost:8080/books/1.json , otrzymasz odpowiedź JSON, taką jak:

{"id":1,"title":"The Stand"}

Jeśli chcesz zmienić wartość domyślną, aby zwracać JSON zamiast XML, możesz to zrobić, ustawiając atrybut formatów transformacji zasobów:

import grails.rest.*

@Resource(uri='/books', formats=['json', 'xml'])
class Book {
    ...
}

Mapowanie do zasobów REST

Jeśli wolisz zachować deklarację mapowania adresu URL w pliku UrlMappings.groovy, wystarczy po prostu usunąć atrybut uri transformacji zasobów i dodać następujący wiersz do UrlMappings.groovy :

"/books"(resources:"book")

Rozszerzenie interfejsu API o więcej punktów końcowych staje się wtedy trywialne:

"/books"(resources:"book") {
    "/publisher"(controller:"publisher", method:"GET")
}

Powyższy przykład ujawni URI /books/1/publisher.

Dodaj HTTPS do Grails Server

Certyfikaty SSL używają czegoś, co nazywa się kryptografią klucza publicznego. Musimy używać Https zamiast Http ze względu na bezpieczeństwo danych między serwerami i zwiększenie zaufania klientów. Aby włączyć tę opcję w Grails, musimy uruchomić naszą aplikację inaczej. Polecenie poniżej:

grails run-app -https


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow