Question: I am building a `RESTful` API and I am not sure whether it is a problem (and violation of REST) to send information that is the same as `URI` parts in the response `body` or not.  

Current Situation
-----------------

An `GET` `/element/$ID` call gets you data of this element from the database, which also contains the `element_ID` and with that the last part of the `URI`. Right now clients are using `element_ID` from the body, but changing them would be no problem, *if it should not be this way in a `RESTful API`*.

General Question
----------------

**Is it a problem to send `URI` parts in the response body?**  

(and if so should these parts be changeable)  

Should the data be removed from the response body so clients have to use the `URI` to extract needed information? The main problem (additional to unnecessary overhead because of redundancy) I see is when clients want to change fields relevant for building the `URI` (e.g. use `PUT` on `/element/$ID` and change the `element_id` field).  

Examples
--------

Would this be a problem (the `element_id` is also used for the `URI`):

```
{
    "name": "Robert",
    "element_id": 1337
    "links": [ {
        "rel": "self",
        "href": "http://domain.tld:8080/element/1337"
    } ]
}

```

And what would happen if you make following call on this model

```
PUT http://domain.tld:8080/element/1337
{
    "name": "Robert",
    "element_id": 1234
}

```

Or should the model just look more like this?

```
{
    "name": "Robert",
    "links": [ {
        "rel": "self",
        "href": "http://domain.tld:8080/element/1337"
    } ]
}

```

Answer: 
You can use [URI templates](https://www.rfc-editor.org/rfc/rfc6570)

* if you want the user to fill in some parameters with input fields.
* if you want to make your response smaller, but that is much easier with gzip

You should follow the HATEOAS principle: the clients should not break if you change the URI structure. So roughly the client should not build URIs, or if it builds URIs, then always the server gives the recipes how to do it, so if the recipes change, the client can adapt. This is very similar to how browsers work, they follow links given by the HTTP server...
I am not sure i understand your question entirely. However, including URI's to objects in your response is a constraint of REST called HATEOAS. Have a look here: <http://spring.io/understanding/HATEOAS>

Response formats are not a concern of REST.