サーチ…


前書き

GrailsでRESTful APIを作成する最も簡単な方法は、ドメインクラスをRESTリソースとして公開することです。これはgrails.rest.Resource変換を任意のドメインクラスに追加することで可能です。

grailsを使った簡単なREST API

import grails.rest.*

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

    String title

    static constraints = {
        title blank:false
    }
}

リソース変換を追加しURIを指定するだけで、ドメインクラスはXMLまたはJSON形式のRESTリソースとして自動的に利用可能になります。この変換により、必要なRESTful URLマッピングが自動的に登録され、BookControllerというコントローラが作成されます。

BootStrap.groovyにいくつかのテストデータを追加して試すことができます:

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

そしてhttp://localhost:8080/books/1のURLを打つと、レスポンスは以下のようにレンダリングされます:

<?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"}

XMLではなくJSONを返すようにデフォルトを変更する場合は、リソース変換のformats属性を設定することでこれを行うことができます。

import grails.rest.*

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

RESTリソースへのマッピング

UrlMappings.groovyファイルにURLマッピングの宣言を保持したい場合は、単にリソース変換のuri属性を削除し、 UrlMappings.groovy次の行を追加UrlMappings.groovyば十分です。

"/books"(resources:"book")

より多くのエンドポイントを含めるようにAPIを拡張すると、簡単になります:

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

上記の例では、URI /books/1/publisher.

GrailsサーバにHTTPSを追加する

SSL証明書は、公開鍵暗号と呼ばれるものを使用しています.Httpの代わりにHttpを使用する必要があります。これは、サーバー間でデータを安全に保ち、顧客の信頼を向上させるためです。 grailsでこのオプションを有効にするには、アプリを別の方法で実行する必要があります。以下のコマンド:

grails run-app -https


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow