2016-12-15 10 views
0

Grails 3 Link GeneratorをRestfulリンクを作成するよう再設定する方法はありますか?localhost:8080/book/show/{id}のアクションを含む古いスタイルではなく、localhost:8080/book/{id}Grails 3 Restful Link Generator(アクションなし)

レスポンスの場所ヘッダーに安らかなURLを設定して、アクションを保存したいと考えています。

答えて

0

私はこれを回避策としてGrails Restful Link Generatorを使用しています。私はそれに完全に満足しているわけではありませんが、それまでに思いついたことは最高です。

1. URLから余計なアクション

import grails.web.mapping.LinkGenerator 

trait RestfulLinkGeneratorTrait { 

    LinkGenerator grailsLinkGenerator 

    String generateLink(Map map) { 
     map.controller = map.controller ?: this.controllerName 
     map.absolute = map.absolute ?: true 
     map.action = map.action ?: "show" 
     grailsLinkGenerator.link(map).replace("/$map.action", "") 
    } 
} 

2.お使いのコントローラ(複数可)にRestfulLinkGeneratorを実装し、リンクを生成するためにgenerateLink(id: obj.id)を呼び出して削除src/main/groovyで形質を作成します。

@Secured('ROLE_USER') 
class BookController extends RestfulController implements RestfulLinkGeneratorTrait { 

    //... other methods ...// 

    @Transactional 
    def save() { 
     // ... save you resource ... // 
     response.addHeader(HttpHeaders.LOCATION, generateLink(id: book.id)) 
     respond book, [status: CREATED, view: 'show'] 
    } 

    //... other methods ...// 

} 
関連する問題