grails
RESTリソースとしてのドメインクラス
サーチ…
前書き
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