Search code examples
javaspringspring-data-mongodbspring-data-rest

Association in Spring Data Rest


I have an entity called Veículo and another called Agência, Veículo has many Agência and want to make this association. However, when I try to associate the URI I get this error.
Can anyone help me on how to associate correctly?

    daniela.morais@tusk:~$ curl -X POST -H "Content-Type:application/json" -d '{"nome": "Agencia"}' http://localhost:8181/api/agencias
    {
      "nome" : "Agencia",
      "createdBy" : "anonymousUser",
      "lastModifiedBy" : "anonymousUser",
      "createdAt" : "2015-07-17T13:20:10.266+0000",
      "lastModified" : "2015-07-17T13:20:10.266+0000",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8181/api/agencias/55a9010a44ae65cbf03ca4c2"
        }
      }
    }daniela.morais@tusk:~$ curl -X POST -H "Content-Type:application/json" -d '{"nome": "veiculo", "tipo": "tipo"}' http://localhost:8181/api/eiculos
    {
      "nome" : "veiculo",
      "tipo" : "tipo",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8181/api/veiculos/55a9015244ae65cbf03ca4c5"
        },
        "contatos" : {
          "href" : "http://localhost:8181/api/veiculos/55a9015244ae65cbf03ca4c5/contatos"
        },
        "agencias" : {
          "href" : "http://localhost:8181/api/veiculos/55a9015244ae65cbf03ca4c5/agencias"
        }
      }
    }
    daniela.morais@tusk:~$ curl -i -X PUT -H "Content-Type: text/uri-list" -d $'http://localhost:8181/api/agencias/55a9010a44ae65cbf03ca4c2' http://localhost:8181/api/veiculos/55a9015244ae65cbf03ca4c5/agencias
HTTP/1.1 404 Not Found
Server: Apache-Coyote/1.1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 0
Date: Fri, 17 Jul 2015 13:34:48 GMT

Solution

  • daniela.morais@tusk:~$ curl -X POST -H "Content-Type:application/json" -d '{"nome": "veiculo", "tipo": "tipo"}' http://localhost:8181/api/eiculos
    

    look at this line. Should http://localhost:8181/api/eiculos be http://localhost:8181/api/veiculos

    or maybe http://localhost:8181/api/veiculos/55a9015244ae65cbf03ca4c5/agencias

    should be http://localhost:8181/api/eiculos/55a9015244ae65cbf03ca4c5/agencias

    it looks like you've got a misspelling/typo that is causing the 404

    where eiculos is not veiculos