REST: URL вложенного ресурса, когда вы не хотите, чтобы родительский идентификатор был виден

#rest #routes #restful-url

#rest #маршруты #restful-url

Вопрос:

Я читал, что маршрут для получения вложенного ресурса в REST должен выглядеть следующим образом

/articles/:articleId/comments

Владелец ( :articleId ) дочернего ресурса будет виден.

Но что, если у вас есть владелец, о котором вы не хотите, чтобы клиент знал?

Например, предположим, у меня есть приложение, в котором пользователи имеют анонимные сообщения. Я бы не хотел, чтобы другие пользователи видели, как клиент извлекает сообщение, /users/123/post/321 потому что пользователи могут определить, кто написал сообщение по идентификатору, и оно не будет анонимным.

Необходим ли идентификатор? Можно ли вместо этого делать /users/posts/321 , если все записи имеют уникальный идентификатор?

Комментарии:

1. Как структурировать URL-адрес, полностью зависит от вас. Реальных правил нет, только предложения. Делайте то, что имеет смысл для вашего приложения.

Ответ №1:

Фактических требований к формату URL-адреса нет. Это может быть все, что вы хотели бы, чтобы это было.

Если бы это был я, я бы использовал simply /posts/321 и не users использовал его, поскольку конкретный пользователь вообще не указан в вашем URL. Я думаю, что это самый простой способ справиться с этим в вашем случае.