Gregg
Gregg

Reputation: 35864

Grails 2.2.0 URLMappings: Any way to use same URL with Different Verb

I have the following:

"/api/users"(controller: "user") {
   action = [GET:"list"]
}

Doing a call to http://localhost:8080/platform/users I get a list of users back. Then I added this:

"/api/users"(controller: "user") {
   action = [POST:"save"]
}

And now I get a 404 and it is not hitting either method in UserController. I'd like to be able to use the same URL with the verb controlling which action. Am I doing this wrong or does Grails not support this?

Upvotes: 5

Views: 2776

Answers (2)

coderLMN
coderLMN

Reputation: 3076

Check your userController to see if there is allowedMethods defined accordingly like this:

class UserController {

    static allowedMethods = [save: "POST", list: "GET"]

    def list() {
    .....
    }

    def save() {
    .....
    }
}

Upvotes: 1

James Kleeh
James Kleeh

Reputation: 12228

From the Grails docs: URL Mappings

static mappings = {
   "/product/$id"(controller:"product") {
       action = [GET:"show", PUT:"update", DELETE:"delete", POST:"save"]
   }
}

For your case:

"/api/users"(controller: "user") {
   action = [GET:"list",POST:"save"]
}

Upvotes: 11

Related Questions