Jake N
Jake N

Reputation: 10583

AngularJs $resource, REST and Symfony2 FOSRestBundle

I am using the FOSRestBundle, this bundle generates routes for me and pluralises those routes. For instance a GET request to /users.json is different from a GET request to /user/15.json

Its worth noting that a call to /users/15.json fails.

More on this issue here https://github.com/FriendsOfSymfony/FOSRestBundle/issues/247

In my Angular app I use a $resource to create a RESTful call, the URL is a template as detailed here https://docs.angularjs.org/api/ngResource/service/$resource

For example

$resource('http://example.com/:id.json')

Or

$resource('http://example.com/user/:id.json')

And there in is the problem, the $resource seems to accept a single URL template for the REST resource, but I have multiple ones because of the forced pluralisation from the FOSRestBundle.

I do not think hacking the FOSRestBundle is the answer, so what can I do with my usage of $resource in AngularJs to correct this issue?

Upvotes: 0

Views: 571

Answers (1)

milanlempera
milanlempera

Reputation: 2263

you can set url for every method as third parameter - actions

angular.module("example", ["ngResource"])
  .factory("userService", function($resource) {
    return $resource("http://example.com/user/:id.json", {
      id: "@id"
    }, {
      'query': {
        url: "http://example.com/users"
      }
    })
  })
  .run(function(userService) {
    userService.query();

    userService.get({id:1});
  })

Upvotes: 1

Related Questions