Earlier quoted context omitted.
That’s what 302 responses are for. REST does not mean ‘parameters in the path not in the query string’.
I don't understand. Suppose that we have /shops/1/listing/1 /shops/2/listing/1 where listing 1 is an id local to those shops, they are two different listings. What happens to those URLs when those shops remove those listings? Both of them should return 404. Then the listing appears in shops 3 and 4. /shops/3/listing/1 /shops/4/listing/1 If we have four different records in the listings table of the database there is…
So you have: |shopid|listingid|itemid|
The item is global and the listing is local to add shop specific info, or even whether that shop carries that item?
Of course this might not be a valid use case or I may misunderstand then meaning of listing.